点击以下代码中的commandLink
按钮不会重定向到目标网页:
<h:form>
<h:dataTable value="#{studentController.students}" var="studentData" >
<h:column>
<f:facet name="header">Action</f:facet>
<h:commandLink value="Update" action="update.xhtml"/>
</h:column>
</h:dataTable>
</h:form>
答案 0 :(得分:-1)
这不是h:commandLink
的工作原理。看看the documentation。属性action
应包含
javax.el.MethodExpression (签名必须与java.lang.Object action())
匹配MethodExpression,表示用户激活此组件时要调用的应用程序操作。表达式必须求值为不带参数的公共方法,并返回一个Object(调用toString()以获取逻辑结果),该对象将传递给此应用程序的NavigationHandler。
所以看起来应该是这样的:
<h:commandLink value="Update" action="#{someBean.action}" />
你的bean应该有一个方法:
public String action() {
// Do something
return "update";
}
在faces-config.xml
中,您应该添加导航规则:
<navigation-rule>
<from-view-id>/list.xhtml</from-view-id>
<navigation-case>
<from-outcome>update</from-outcome>
<to-view-id>/update.xhtml</to-view-id>
</navigation-case>
</navigation-rule>
您可以直接在action
属性中使用结果并跳过Java方法来简化所有这些。
<h:commandLink value="Update" action="update"/>