Hibernate 我的jsp页面中的Struts 2会话访问问题

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<

我有一个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<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" />