EL表达式问题?怎么获取对象的属性对象的属性对象的属性?

享受幸福生活 2013-06-03 03:57:50
1、SSH的小虾米不懂是否可以获取对象的属性对象的属性对象的属性?
2、不可以的 话 用ognl表达式可以吗?
求解谢谢大虾。

list.jsp
	<table>
<tbody>
<tr>
<td>序号</td>
<td>工号</td>
<td>姓名</td>
<td>部门</td>
</tr>


<c:forEach items="${liveinfos }" var="liveinfo">
<tr>
<td>${liveinfo.live_id }</td>
<td>${liveinfo.employee.emp_no }</td>
<td>${liveinfo.employee.emp_name }</td>
<td>${liveinfo.employee.department.dep_name }</td>
</tr>

</c:forEach>
</tbody>
</table>

Employee.hbm.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="cn.model">
<class name="cn.model.Employee" table="employee">
<cache include="all" region="cn.model.Employee" usage="read-write" />

<id type="integer" name="emp_id" column="emp_id">
<generator class="native" />
</id>
<property generated="never" length="200" name="emp_name"
not-null="true" type="string" />
<property generated="never" length="200" name="emp_no" type="string" />
<many-to-one name="depart" column="depart_id"></many-to-one>
</property>
<one-to-one name="liveinfo" />
</class>
</hibernate-mapping>


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="cn.model">
<class name="cn.model.Department" table="department">
<cache include="all" region="cn.model.Department" usage="read-write"/>

<id type="integer" name="dep_id" column="dep_id"><generator class="identity" /></id>
<property generated="never" length="200" name="dep_name" column="dep_name" type="string"/>
<property generated="never" length="200" name="dep_shortname" column="dep_shortname" type="string"/>
<set name="emp_set" >
<key column="depart_id"></key>
<one-to-many class="Employee" />
</set>


</class>
</hibernate-mapping>

action.java
	public String list(){
ActionContext.getContext().put("liveinfos", liveinfoService.list());

return "list";
}

运行错误
org.apache.jasper.JasperException: An exception occurred processing JSP page /WEB-INF/page/liveinfoList.jsp at line 46

43: <td>${liveinfo.live_id }</td>
44: <td>${liveinfo.employee.emp_no }</td>
45: <td>${liveinfo.employee.emp_name }</td>
46: <td>${liveinfo.employee.department.dep_name }</td>

...全文
1340 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
享受幸福生活 2013-06-07
  • 打赏
  • 举报
回复
EL表达式取值多层关系的对象 按照hibernate的映射文件里的对应名字取就好了, 我前后名字改的不一样就取不到值了。
  • 打赏
  • 举报
回复
突然结贴了,什么情况,是我说的哪个问题否?
  • 打赏
  • 举报
回复
employee内看不到department属性的配置,应该是<td>${liveinfo.employee.depart.dep_name }</td>吧
享受幸福生活 2013-06-03
  • 打赏
  • 举报
回复
有set 和get的嘛 ???? department.java
package cn.model;

import java.util.Set;

public class Department {
	private Integer dep_id;
	private String dep_name;
	private String dep_shortname;
	private Set<Employee> emp_set;
	
	public Department(String dep_name, String dep_shortname) {
		super();
		this.dep_name = dep_name;
		this.dep_shortname = dep_shortname;
	}

	public Department(String dep_shortname) {
		super();
		this.dep_shortname = dep_shortname;
	}



	public Department() {
		super();
		// TODO Auto-generated constructor stub
	}

	/* (non-Javadoc)
	 * @see java.lang.Object#toString()
	 */
	@Override
	public String toString() {
		// TODO Auto-generated method stub
		return "<br/>部门名称:"+dep_name+"<br/>部门简称:"+dep_shortname;
	}

	/**
	 * @return the dep_id
	 */
	public Integer getDep_id() {
		return dep_id;
	}
	/**
	 * @param dep_id the dep_id to set
	 */
	public void setDep_id(Integer dep_id) {
		this.dep_id = dep_id;
	}
	/**
	 * @return the dep_name
	 */
	public String getDep_name() {
		return dep_name;
	}
	/**
	 * @param dep_name the dep_name to set
	 */
	public void setDep_name(String dep_name) {
		this.dep_name = dep_name;
	}
	/**
	 * @return the dep_shortname
	 */
	public String getDep_shortname() {
		return dep_shortname;
	}
	/**
	 * @param dep_shortname the dep_shortname to set
	 */
	public void setDep_shortname(String dep_shortname) {
		this.dep_shortname = dep_shortname;
	}
	/**
	 * @return the emp_set
	 */
	public Set<Employee> getEmp_set() {
		return emp_set;
	}
	/**
	 * @param emp_set the emp_set to set
	 */
	public void setEmp_set(Set<Employee> emp_set) {
		this.emp_set = emp_set;
	}
	
}
花木兰1闪21A 2013-06-03
  • 打赏
  • 举报
回复
你看看employee中的department对象有没get set方法哦

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧