我正在使用HIBERNATE-SPRING和JSF开发应用程序。 当我在我的jsf页面上放一个commandButton时,它没有重定向到另一个jsf页面,我不知道为什么.. 举个例子 : 来自我的JSF页面:
<f:view>
<h:form id="mainForm">
<h:panelGrid columns="1">
<rich:scrollableDataTable id="clientTable"
value="#{clientBean.clients_list}" var="client" >
<!-- The Scrolable data informations... -->
</rich:scrollableDataTable>
<h:commandButton value="Detail"
action="#{clientBean.ViewDetail}"/>
</h:panelGrid>
</h:form>
</f:view>
我在:ClientBean中创建了一个ViewDetail方法,如下所示:
@SuppressWarnings("serial")
@Scope("session")
@Component("clientBean")
public class ClientBean implements Serializable {
//attributs
public String ViewDetail() {
//some code
return "detail";
}
}
在faces config中,我得到了:
<navigation-rule>
<from-view-id>*</from-view-id>
<navigation-case>
<from-outcome>detail</from-outcome>
<to-view-id>/clients_details.jsp</to-view-id>
</navigation-case>
</navigation-rule>
但是,当我运行它,并且我使用“详细信息”按钮时,这里是我没有得到任何东西,没有错误,没有警告,没有...只是保持在同一页面上,似乎加载了一些东西,但根本没有重定向(它甚至不会进入ClientBean类..)
所以......
在网上看到无处不在之后,我试过了
(在jsf页面上)
<h:commandButton value="Detail">
<f:param name="action" value ="#{clientBean.ViewDetail}"/>
</h:commandButton>
这就是我跑的时候得到的:
:/ clients_liste.jsp(67,0)'#{clientBean.ViewDetail}'在com.last.web.ClientBean类型中找不到属性'ViewDetail'
尽管如此,我不会在ClientBean中进行任何更改,这就像他将属性与方法混淆一样..
如果任何人可以帮助请一个或另一个问题:) .. 谢谢:)