我正在使用JSF,尝试使用以下代码在数据表内单击按钮上调用页面
<h:column>
<h:outputText value=""/>
<h:commandButton id = "btn" value="History" action="#{Bean.showHistory}">
</h:commandButton>
</h:column>
我的bean类包含一个返回成功的方法“showHistory”,我也在faces-config.xml中包含了导航规则,但仍然无法调用页面。我的导航规则看起来
<managed-bean>
<managed-bean-name>Bean</managed-bean-name>
<managed-bean-class>
com.bean.HistoryBean
</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
<navigation-rule>
<display-name>List</display-name>
<from-view-id>/BookList.jsp</from-view-id>
<navigation-case>
<from-outcome>success</from-outcome>
<to-view-id>/History.jsp</to-view-id>
</navigation-case>
</navigation-rule>
Bean类由showHistory()组成
public String showHistory() {
return "success";
}
我可以帮忙解决这个问题????
答案 0 :(得分:2)
确保将命令按钮放在h:form
元素中:它应该可以工作!
答案 1 :(得分:0)
从您的源代码中,一切看起来都不错(当然包括Pier建议使用h:form
标记)。
尝试调试并检查是否完全调用了您的操作方法。
如果没有,则可能是您的from-view-id
元素不匹配。作为测试,您可以尝试使用空元素(所有页面的默认导航):
<from-view-id></from-view-id>
如果这样可行,则问题出在您的from-view-id
元素上。也许它在不同的文件夹或大/小写错字。