命令按钮操作无效

时间:2012-05-03 20:09:27

标签: jsf redirect

我有这个数据表:

<h:dataTable value="#{orderController.orderList}" var="order"
                                     styleClass="table table-striped">
                            <h:column>
                                <f:facet name="header">#</f:facet>
                                <h:outputText value="#{order.orderNo}" escape="false"/>
                            </h:column>
                            <h:column>
                                <f:facet name="header">Cliente</f:facet>
                                <h:outputText value="#{order.client}" escape="false"/>
                            </h:column>
                            <h:column>
                                <f:facet name="header">Data</f:facet>
                                <h:outputText value="#{order.date}" escape="false"/>
                            </h:column>
                            <h:column>
                                <f:facet name="header">Status</f:facet>
                                <h:outputText value="#{order.status}" escape="false"/>
                            </h:column>
                            <h:column>
                                <f:facet name="header"></f:facet>
                                <h:form>
                                    <h:commandButton action="#{orderController.orderDetail}" value="Detalhe" styleClass="btn btn-info"/>
                                </h:form>
                            </h:column>
</h:dataTable>

我正在显示订单列表,每个列表都有一个“详细信息”按钮,该按钮会将用户重定向到orderDetail.html内的views/fornecedores页面。

我已经调试了,当我点击commandButton时,它没有调用我的bean函数。[

我也试过这个:<h:commandButton action="views/fornecedores/orderDetail.html" value="Detalhe" styleClass="btn btn-info"/>而且没有,它会一直将我重定向到同一页orderSearch.html

我需要的是调用将接收orderNo参数的方法并加载对象并重定向到orderDetail.html页。

我做错了什么或采用这种方法的最佳方法是什么?

1 个答案:

答案 0 :(得分:7)

在这种特殊情况下,当您嵌套在HTML中非法的表单时,可能会发生这种情况。当#{orderController}是请求作用域且orderList内容依赖于基于请求的值时,也会发生这种情况,该值导致在处理表单提交时列表不兼容地更改。

因此,请确保您没有将多个<h:form>组件相互嵌套,并确保#{orderController}@ViewScoped bean并且您没有操纵{ {1}}在其getter方法中。

另见:


至于您的具体功能要求,orderList <h:link><f:param>对此更为明智。它的书签和更多SEO友好。另请参阅Communication in JSF 2.0 - Processing GET request parameters