如何在数据库中存储用户会话属性以及以相同形式提供的其他信息?
<p:outputLabel value="user ID:" for="informer" />
<p:inputText id="informer" value="#{session.getAttribute('userID').toString()}"
title="informer" disabled="true" />只有会话属性被保存为NULL,尽管它出现在form字段中。其他字段被正确保存。
提前谢谢。
发布于 2014-03-13 16:01:58
我很惊讶您的JSF实现没有在这方面抛出错误,因为输入组件的value属性需要是可写的,而.toString()生成的字符串显然不是。
下一步是为实际保存数据的字段设置值:
@Entity
public class User {
private String userId;
//... other fields
}
@Named @ViewScoped
public class UserBean implements Serializable {
private User myUser;
@PostConstruct
public void init() {
String uid = FacesContext.getCurrentInstance().getExternalContext()
.getSessionMap().get("userID").toString();
myUser = new User();
myUser.setUserId(uid);
}
}在你看来:
<p:outputLabel value="user ID:" for="informer" />
<p:inputText id="informer" value="#{userBean.myUser.userId}" disabled="true" />发布于 2014-03-13 17:05:53
我将忽略这里的设计问题(mabi已经指出了这一点),我将直接回答具体的问题:只需引用#{sessionScope}提供的会话映射即可。
<p:inputText ... value="#{sessionScope.userID}" />与具体问题无关的,为了将其打印到输出的唯一目的,不要使用:
#{session.getAttribute('userID').toString()}这没有任何意义。只需按通常的EL方式:
#{userID}https://stackoverflow.com/questions/22381635
复制相似问题