加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 如何从Servlet访问托管bean和会话bean

发布时间:2020-12-14 16:20:49 所属栏目:Java 来源:网络整理
导读:参见英文答案 Get JSF managed bean by name in any Servlet related class6 这是我的commandLink如何工作 p:dataTable value="#{myBean.users}" var="item" p:column h:commandLink value="#{item.name}" action="#{myBean.setSelectedUser(item)}" / /p:co
参见英文答案 > Get JSF managed bean by name in any Servlet related class6
这是我的commandLink如何工作
<p:dataTable value="#{myBean.users}" var="item">
     <p:column>
         <h:commandLink value="#{item.name}" action="#{myBean.setSelectedUser(item)}" />     
     </p:column>
 </p:dataTable>

然后在myBean.java中

public String setSelectedUser(User user){
     this.selectedUser = user;
     return "Profile";
 }

假设用户名是彼得.然后,如果我点击彼得,我将把selectedUser设置为彼得的用户对象,然后重定向到配置文件页面,该配置文件页面现在从selectedUser呈现信息.我只想使用< h:outputText&gt ;,创建相同的效果,所以GET请求被记住.所以我这样做

<h:outputText value="{myBean.text(item.name,item.id)}" />

那么文本(String name,Long id)方法只是返回

"<a href="someURL?userId="" + id + ">" + name + "</a>"

所有剩下的都是创建一个servlet,捕获该id,查询数据库以获取用户对象,设置为selectedUser,重定向.
所以这里是我的servlet

public class myServlet extends HttpServlet { 
    protected void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException {
        Long userId = Long.parseLong(request.getParameter("userId"));
    }
}

现在我有id,如何访问我的会话bean来查询用户的数据库,然后访问managed bean将用户设置为selectedUser,然后重定向到profile.jsf?

解决方法

JSF将会话作用域管理的bean存储为会话属性,使用受管Bean名称作为关键字.所以下面的工作(假设JSF已经在会话中创建了之前):
MyBean myBean = (MyBean) request.getSession().getAttribute("myBean");

也就是说,我有一种感觉,你在解决方案方向错误.你也可以这样做:

<a href="profile.jsf?userId=123">

在与profile.jsf关联的请求作用域bean中具有以下内容

@ManagedProperty(value="#{param.userId}")
private Long userId;

@ManagedProperty(value="#{sessionBean}")
private SessionBean sessionBean;

@PostConstruct
public void init() {
    sessionBean.setUser(em.find(User.class,userId));
    // ...
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读