虽然转发渲染JS不包含在.xhtml中

时间:2015-08-12 12:46:35

标签: javascript java jsf-2 primefaces jsf-2.2

我正在开发一个Primefaces / JSF应用程序。

在bean中,我使用这个脚本将渲染转发到另一个页面,而不是bean的通讯者:

 FacesContext context = FacesContext.getCurrentInstance();
    context.getApplication().getNavigationHandler().handleNavigation(context, null, "other-page.xhtml");

other-page.xhtml上,将不包含某些JS文件,从而影响页面的呈现。

奇怪的是,如果我直接通过浏览器指向other-page.xhtml页面以正确的方式呈现。 为什么? 怎么可能?

为什么handleNavigation会导致此问题?我该如何解决?

使用.dispatch.redirect问题没有出现,但出于其他原因我无法使用这两种方法。

这是页面代码:

    <!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"  
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:p="http://primefaces.org/ui"
      xmlns:f="http://java.sun.com/jsf/core">
    <h:head>
        <title>Challenge</title>
        <h:outputScript library="primefaces" name="jquery/jquery.js" />
    </h:head>
    <h:body>
        <h:form id="loginForm">


            <p:growl id="msg" showDetail="true" life="3000" />
            <p:panel header="CHALLENGE!!" style="width: 360px;">

                <h:panelGrid id="loginPanel" columns="2">

                    <h:outputText value="Username" />

                    <p:inputText id="username" value="#{challengeBean.username}" ></p:inputText>

                    <p:spacer></p:spacer>

                    <p:message for="username" ></p:message>

                    <h:outputText value="Password" />

                    <p:password id="password" value="#{challengeBean.password}"  feedback="false"></p:password>

                    <p:spacer></p:spacer>

                    <p:message for="password"></p:message>

                    <p:spacer></p:spacer>

                    <p:commandButton action="#{challengeBean.submit}" value="submit" update="submit" ajax="false"></p:commandButton>

                </h:panelGrid>

            </p:panel>

        </h:form>

    </h:body> 

</html>

0 个答案:

没有答案