Hibernate 我的jsp页面中的Struts 2会话访问问题
我有一个JSP页面,我想用这种方式显示会话中的一些信息Hibernate 我的jsp页面中的Struts 2会话访问问题,hibernate,session,struts2,ognl,Hibernate,Session,Struts2,Ognl,我有一个JSP页面,我想用这种方式显示会话中的一些信息 <div>Fonction : <s:property value="%{#session.employe.emploi.nomEmploi}"/> 雇员: public class Emploi { private Long emploiId; private String nomEmploi; private Set<Employe> employes = new HashSet<
<div>Fonction : <s:property value="%{#session.employe.emploi.nomEmploi}"/>
雇员:
public class Emploi
{
private Long emploiId;
private String nomEmploi;
private Set<Employe> employes = new HashSet<Employe>(0);
@Id
@GeneratedValue(strategy = IDENTITY)
@Column(name = "EMP_ID", unique = true, nullable = false)
public Long getEmploiId() {
return this.emploiId;
}
public void setEmploiId(Long emploiId) {
this.emploiId = emploiId;
}
@Column(name = "NOM_EMPLOI", nullable = false)
public String getNomEmploi() {
return this.nomEmploi;
}
public void setNomEmploi(String nomEmploi) {
this.nomEmploi = nomEmploi;
}
@OneToMany(fetch = FetchType.LAZY, mappedBy = "emploi")
public Set<Employe> getEmployes() {
return this.employes;
}
public void setEmployes(Set<Employe> employes) {
this.employes = employes;
}
}
公共类雇员
{
私人长期雇员;
私有字符串nomEmploi;
私有集employes=新哈希集(0);
@身份证
@生成值(策略=标识)
@列(name=“EMP_ID”,unique=true,nullable=false)
公共长getEmploiId(){
返回此.employid;
}
公共无效setEmployId(长EmployId){
this.emploiId=emploiId;
}
@列(name=“NOM_EMPLOI”,null=false)
公共字符串getNomEmploi(){
返回此.nomEmploi;
}
公共void集合nomEmploi(字符串nomEmploi){
this.nomEmploi=nomEmploi;
}
@OneToMany(fetch=FetchType.LAZY,mappedBy=“emploi”)
公共集合getEmployes(){
归还此文件。员工;
}
公共无效集合雇员(集合雇员){
this.employes=雇员;
}
}
任何帮助都将不胜感激
提前感谢。确保该对象在会话中可用 使用下面的标记,您将了解ValueStack中可用的对象
<s:debug/>
http://localhost:8080/yourApplication/yourActionName.action?debug=xml
确保对象在会话中可用 使用下面的标记,您将了解ValueStack中可用的对象
<s:debug/>
http://localhost:8080/yourApplication/yourActionName.action?debug=xml
但是在我的jsp页面中,我可以显示我的类employe中的每个字符串,但对象Employ除外,我无法访问它的属性。假设Employ在会话中可用,可以发布您的模型结构。我已经更新了问题,您将在那里找到模式,我认为这是一个语法问题,因为我可以访问每个字符串和整数,但如果session无法获取Employ类型,则可以访问嵌套对象。但是在我的jsp页面中,我可以显示employe类中的每个字符串,但对象Employ除外,我无法访问其属性。假设Employ在session中可用,可以发布你的模型结构。我已经更新了问题,在那里你会找到模式,我认为这是一个语法问题,因为我可以访问每个字符串和整数,但是如果会话无法获取Employ类型的嵌套对象,那么您是如何定义Employe的?在我的jsp页面中,我可以像这样访问nom和prenom属性的:但是对于Employ,我不知道有什么问题,您是否从数据库中获取对象?可能您的
Emploi
类未初始化。在放入会话之前,请在代码中检查它。感谢@AleksandrM的提示,我已通过将Employe类中的@ManyTone(fetch=FetchType.LAZY)注释更改为@ManyTone(fetch=FetchType.EAGER)来修复此问题,如下所示:@ManyTone(fetch=FetchType.EAGER)@JoinColumn(name=“employ\u ID”,nullable=false)public employ getemploy(){return this.employ;}您是如何定义Employe的?在我的jsp页面中,我可以像这样访问nom和prenom属性:但对于employ,我不知道有什么问题您是否从数据库中获取对象?可能您的Emploi
类未初始化。在放入会话之前,请在代码中检查它。感谢@AleksandrM的提示,我已通过将Employe类中的@ManyTone(fetch=FetchType.LAZY)注释更改为@ManyTone(fetch=FetchType.EAGER)来修复此问题,如下所示:@ManyTone(fetch=FetchType.EAGER)@JoinColumn(name=“employ\u ID”,nullable=false)public Emploi getEmploi(){返回this.Emploi;}
<constant name="struts.devMode" value="true" />