首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JSF到Bean到JSF

JSF到Bean到JSF
EN

Stack Overflow用户
提问于 2012-12-11 04:09:40
回答 2查看 188关注 0票数 0

所以我在尝试传递字符串值时遇到了问题。

字符串值作为用户名通过登录页面输入。

然后,JSF调用Bean来验证登录信息,然后转到另一个JSF页面。

我想知道如何将用户名传递给新的JSF页面。谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-12-11 04:17:51

如果你正在执行导航而不是重定向,那么你基本上不需要做任何事情。该信息也只在导航页面中可用。

例如在登录页面中,

代码语言:javascript
复制
<h:inputText value="#{bean.username}" />

在导航的页面中:

代码语言:javascript
复制
<p>You have entered the following username: #{bean.username}</p>

但是,如果您正在执行重定向而不是导航,那么您基本上需要在更大的范围内存储信息。您没有清楚地阐述问题中的具体功能需求,但如果我猜对了,您只是希望在HTTP会话的其余部分记住当前登录的用户。在这种情况下,只需在登录操作期间将其存储在session scope中即可。

代码语言:javascript
复制
public String login() {
    // ...
    User user = userService.find(username, password);
    // ...
    externalContext.getSessionMap().put("user", user);
    // ...
    return "nextpage?faces-redirect=true";
}

这样,#{user}就可以在整个HTTP会话中使用它。

代码语言:javascript
复制
<p>You're logged in as #{user.name}.</p>
票数 6
EN

Stack Overflow用户

发布于 2012-12-11 15:13:26

您也可以在不使用会话范围的情况下使用<t:saveState><t:saveState>长于请求作用域,但短于会话作用域。

这可能会对你有所帮助:http://myfaces.apache.org/tomahawk-project/tomahawk12/tagdoc/t_saveState.html

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13808401

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档