我有这个数据表:
<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>
Run Code Online (Sandbox Code Playgroud)
我正在显示订单列表,每个列表都有一个"详细信息"按钮,将用户重定向到orderDetail.html内部页面views/fornecedores.
我已经调试了,当我点击commandButton它时,它没有调用我的bean函数.[
我也尝试了这个:<h:commandButton action="views/fornecedores/orderDetail.html" value="Detalhe" styleClass="btn btn-info"/>没有,它一直将我重定向到同一页面,orderSearch.html.
我需要的是调用将接收orderNo参数的方法,并将加载对象并重定向到orderDetail.html页面.
我做错了什么或这种方法的最佳方法是什么?
在这种特殊情况下,当您嵌套在HTML中非法的表单时,可能会发生这种情况.当#{orderController}请求作用域并且orderList内容依赖于基于请求的值时,也会发生这种情况,该值导致在处理表单提交时列表不兼容地更改.
因此,请确保您没有将多个<h:form>组件嵌套在一起,并确保它#{orderController}是一个@ViewScopedbean,并且您没有orderList在其getter方法中操作它.
至于你的具体功能要求,<h:link>使用<f:param>和<f:viewParam>更合理的方法.它的书签和更多SEO友好.另请参阅JSF 2.0中的通信 - 处理GET请求参数.
| 归档时间: |
|
| 查看次数: |
14139 次 |
| 最近记录: |