Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在JSF页面之间传递信息_Java_Jsf_Primefaces - Fatal编程技术网

Java 在JSF页面之间传递信息

Java 在JSF页面之间传递信息,java,jsf,primefaces,Java,Jsf,Primefaces,我正在开发一个应用程序,在这个应用程序中,我必须根据用户输入显示数据库中的数据(例如,empid字段表示员工id,我根据此输入显示数据库中的一些信息)。我正在使用JSF、PrimeFace和Hibernate 现在,我有了index.xhtml页面,在这里输入empid。之后,我必须重定向到另一个页面page2.xhtml 以下是index.xhtml中的一个片段: <h:form> <p>Employee ID: <

我正在开发一个应用程序,在这个应用程序中,我必须根据用户输入显示数据库中的数据(例如,empid字段表示员工id,我根据此输入显示数据库中的一些信息)。我正在使用JSF、PrimeFace和Hibernate

现在,我有了index.xhtml页面,在这里输入empid。之后,我必须重定向到另一个页面page2.xhtml

以下是index.xhtml中的一个片段:

     <h:form>
        <p>Employee ID:
            <p:inputText value="#{userBean.newuser.empid}" required="true"/></p>
     </h:form>
     <br />
     <h:form>
         <p:commandButton action="page2?faces-redirect=true" value="Enter" />      
     </h:form>  

员工ID:



但是在重新定向到page2.xhtml之后,index.xhtml页面的empid输入将丢失。我试着读了几篇关于这方面的帖子,但没能理解。请帮忙。如果这是一个重复的问题,我很抱歉。

我假设您安装在其中的托管bean的viewscope是
@RequestScope
?您可以为托管bean指定更宽的视图范围,这样它就不会在每次请求后被销毁。然而,当想要最小化会话范围膨胀时,
@RequestScope
确实很好。为了保持这个会话范围,您可以使用JSF2.0中引入的flash对象。由于这个对象,您可以在请求之间传输数据。您可以放置以下代码段:

ExternalContext.getFlash().put("empid", newuser.getEmpid);
在您的
userBean
中。重定向后,您可以通过以下方式在jsf页面上检索该值:

{flash.empid}

或者在托管bean中:

ExternalContext.getFlash().get("empid");

有关flash的更多信息,请参见本页或

您的输入字段和命令按钮的格式不同?是的,我注意到了。我把它们保持在同样的状态,但那也不好。下面是一个例子:谢谢你的帮助:谢谢你的帮助。将尝试此方法。ViewAccessScoped from code非常适合。防止“sessionBloat”达到一个很好的程度,并使您的代码保持简单。。。