Java 在JSF页面之间传递信息
我正在开发一个应用程序,在这个应用程序中,我必须根据用户输入显示数据库中的数据(例如,empid字段表示员工id,我根据此输入显示数据库中的一些信息)。我正在使用JSF、PrimeFace和Hibernate 现在,我有了index.xhtml页面,在这里输入empid。之后,我必须重定向到另一个页面page2.xhtml 以下是index.xhtml中的一个片段: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: <
<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”达到一个很好的程度,并使您的代码保持简单。。。