JSF到Bean到JSF

0 jsf javabeans

所以我在尝试传递String值时遇到问题.

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

然后,JSF调用Bean来验证登录信息,然后进入另一个JSF页面.

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

Bal*_*usC 6

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

例如在登录页面中,

<h:inputText value="#{bean.username}" />
Run Code Online (Sandbox Code Playgroud)

并在导航页面中:

<p>You have entered the following username: #{bean.username}</p>
Run Code Online (Sandbox Code Playgroud)

如果您正在执行重定向而不是导航,那么您基本上需要将信息存储在更广泛的范围内.您没有清楚地详细说明问题中的具体功能要求,但如果我猜对了,您只想记住当前登录用户的剩余HTTP会话.在这种情况下,只需在登录操作期间将其存储在会话范围中.

public String login() {
    // ...
    User user = userService.find(username, password);
    // ...
    externalContext.getSessionMap().put("user", user);
    // ...
    return "nextpage?faces-redirect=true";
}
Run Code Online (Sandbox Code Playgroud)

这样#{user},整个HTTP会话都可以使用它.

<p>You're logged in as #{user.name}.</p>
Run Code Online (Sandbox Code Playgroud)

  • 优秀!这表明如何为一个看似很差的问题提供丰富的答案. (2认同)