JSF 2.0页面导航无法正常工作

时间:2012-05-16 05:38:04

标签: jsf java-ee jsf-2 primefaces

我在我的网站项目中使用JSF 2.0。但就我而言,导航工作不正常。我认为这个问题是由于文件层次结构的变化引起的,因为动作方法工作正常。我正在附上快照以了解文件的层次结构。

enter image description here

如果有人能帮助克服这一点,我将非常感激。

2 个答案:

答案 0 :(得分:3)

您必须将ajax="false"添加到primefaces commandButtons才能执行导航或使用简单的<h:commandButton ...

如果你想使用primefaces ajax按钮,你应该起诉重定向,

像这样

 <p:commandButton action="home?faces-redirect=true" value="Redirect to home"/>

这里也有类似的问题:

PrimeFaces commandButton doesn't navigate or update

答案 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>