【问题标题】:How do I update a datatable from a commandbutton press?如何从命令按钮按下更新数据表?
【发布时间】:2014-06-18 07:12:18
【问题描述】:

我有一个 jsf 页面,它在页面首次加载时成功地从我的数据 bean 中提取数据。

我想要的是数据表使用来自 jsf 中 inputText 组件的文本输入,然后在调用 jsf bean 中使用它并生成表。

我该怎么做呢?

具体我想要的是

  • 从 inputText JSF 组件中获取文本输入
  • 在 commandButton JSF 组件上单击
  • 使用 inputText 作为 bean 调用的参数更新 dataTable

        <h:dataTable value="#{movie.getSearchMovieList('car')}" var="c"
                     styleClass="order-table"
                     headerClass="order-table-header"
                     rowClasses="order-table-odd-row,order-table-even-row"
                     >
    
            <h:column>
                <f:facet name="header">
                    Movie ID
                </f:facet>
                #{c.itemid}
            </h:column>
    
            <h:column>
                <f:facet name="header">
                    Title
                </f:facet>
                #{c.title}
            </h:column>
        </h:dataTable>
    

【问题讨论】:

    标签: java jsf datatable ejb


    【解决方案1】:

    在托管 bean 中创建一个字段以在导航时保存默认值:

    private String filter = "car"; // + getter/setter
    

    那么,在视图中:

    <h:form>
        <h:inputText label="Type search filter :" value="#{movie.filter}" />
        <h:dataTable value="#{movie.getSearchMovieList(movie.filter)}" var="c" ... >
            ...
        </h:dataTable>
    
        <h:commandButton value="Search" /> // no action attribute means refreshing
    <h:form>
    

    【讨论】:

    • 太好了,谢谢。简单、简洁、有效。
    • 您不需要通过该方法传递movie.filter。它会自动将其设置为value。当你有很多变量时,只是深思熟虑......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-25
    • 1970-01-01
    • 2015-07-14
    • 2011-12-31
    相关资源
    最近更新 更多