我在我的网站项目中使用JSF 2.0。但就我而言,导航工作不正常。我认为这个问题是由于文件层次结构的变化引起的,因为动作方法工作正常。我正在附上快照以了解文件的层次结构。
如果有人能帮助克服这一点,我将非常感激。
答案 0 :(得分:3)
您必须将ajax="false"
添加到primefaces commandButtons才能执行导航或使用简单的<h:commandButton
...
如果你想使用primefaces ajax按钮,你应该起诉重定向,
像这样 <p:commandButton action="home?faces-redirect=true" value="Redirect to home"/>
这里也有类似的问题:
答案 1 :(得分:1)
升级到PrimeFaces 3.2。然后你就可以通过ajax导航了。在该版本之前,不支持更新/呈现@all
。如果你无法升级,那么你需要引入以下JavaScript hack:
var originalPrimeFacesAjaxResponseFunction = PrimeFaces.ajax.AjaxResponse;
PrimeFaces.ajax.AjaxResponse = function(responseXML) {
var newViewRoot = $(responseXML.documentElement).find("update[id='javax.faces.ViewRoot']").text();
if (newViewRoot) {
document.open();
document.write(newViewRoot);
document.close();
}
else {
originalPrimeFacesAjaxResponseFunction.apply(this, arguments);
}
};
将其放在.js
文件中,您在<h:head>
标记的最末端导入该文件。 E.g。
<h:head>
...
<h:outputScript name="js/primeFacesAll.js" />
</h:head>