如何将 JSF 值从一个辅助 bean 传递到另一个辅助 bean?
How to pass JSF value to from a backing bean to another backing bean?
我的问题是我想将一个值(已登录用户的 ID)传递给页面。
以下代码显示 link 到页面
<h:form>
<h:link outcome="Account">
#{logging.username}
</h:link>
</h:form>
所以我想在该页面加载时传递 "logging.id to the "Account" 我想将 id 传递给该帐户页面使用的另一个支持 bean。
那么这样做的方法是什么?
请帮助我
就我而言,登录用户是一个会话 属性 而不是 request/page 属性.
就此而言,您可以将 user.id 保存在会话属性中,而不是通过 url 请求将其传递到另一个页面,您可以从任何支持 bean 的会话中获取它你需要它。
示例:
public void login(String username, String password ){
UserAccount account = myManagerBean.findUser(username, password);
HttpSession session = getCurrentRequestFromFacesContext().getSession(false);
session.addAttribute("user.account", account);
}
然后来自任何其他支持 bean。
public UserAccount getUserAccount() {
HttpSession session = getCurrentRequestFromFacesContext().getSession(false);
return session.getAttribute("user.account");
}
但如果这就是您现在所需要的,您可以将 id 作为请求参数传递:
<h:form>
<h:link outcome="Account">
<f:param name="user.username" value="#{logging.username}"/>
</h:link>
</h:form>
然后您可以将其直接附加到请求范围 bean 的支持 bean 属性 或从请求中手动检索它:
@RequestScope
public class MyAccountBean {
@ManagedProperty("user.username")
private String username;
... or ...
public String getUserName() {
return getCurrentRequestFromFacesContext().getParameter("user.username");
}
}
我的问题是我想将一个值(已登录用户的 ID)传递给页面。 以下代码显示 link 到页面
<h:form>
<h:link outcome="Account">
#{logging.username}
</h:link>
</h:form>
所以我想在该页面加载时传递 "logging.id to the "Account" 我想将 id 传递给该帐户页面使用的另一个支持 bean。 那么这样做的方法是什么? 请帮助我
就我而言,登录用户是一个会话 属性 而不是 request/page 属性.
就此而言,您可以将 user.id 保存在会话属性中,而不是通过 url 请求将其传递到另一个页面,您可以从任何支持 bean 的会话中获取它你需要它。
示例:
public void login(String username, String password ){
UserAccount account = myManagerBean.findUser(username, password);
HttpSession session = getCurrentRequestFromFacesContext().getSession(false);
session.addAttribute("user.account", account);
}
然后来自任何其他支持 bean。
public UserAccount getUserAccount() {
HttpSession session = getCurrentRequestFromFacesContext().getSession(false);
return session.getAttribute("user.account");
}
但如果这就是您现在所需要的,您可以将 id 作为请求参数传递:
<h:form>
<h:link outcome="Account">
<f:param name="user.username" value="#{logging.username}"/>
</h:link>
</h:form>
然后您可以将其直接附加到请求范围 bean 的支持 bean 属性 或从请求中手动检索它:
@RequestScope
public class MyAccountBean {
@ManagedProperty("user.username")
private String username;
... or ...
public String getUserName() {
return getCurrentRequestFromFacesContext().getParameter("user.username");
}
}