关于jstl

今天遇到一个问题,将organization和employee两种对象放到同一个list中后,在页面上将这个list用<c:forEach>显示出来,如何显示?
从网上找了2小时,没有找到好的解决方法。
后来从javaeye上看到一篇文章,虽然不对,但是给我了启发:el表达式可以直接通过get方法读取对象的值!呵呵
修改Organization.java和Employee.java,增加了如下的部分:
1、Organization.java
private String className;

public String getClassName() {
  return "com.zb.itams.domain.Employee";
}

public void setClassName(String className) {
  this.className = "com.zb.itams.domain.Employee";
}

2、Employee.java
private String className;

public String getClassName() {
  return "com.zb.itams.domain.Organization";
}

public void setClassName(String className) {
  this.className = "com.zb.itams.domain.Organization";
}

3、在页面上:
<c:forEach items="${listEmployees}" var="employees"><br />
  <c:if test="${employees.className == 'com.zb.itams.domain.Organization'}">
    <c:out value="${employees.organizationId}" />
    <c:out value="${employees.organizationShortName}" />
  </c:if>
  <c:if test="${employees.className == 'com.zb.itams.domain.Employee'}">
    <c:out value="${employees.employeeId}" />
    <c:out value="${employees.employeeFirstName}" />
    <c:out value="${employees.employeeLastName}" />
  </c:if>
</c:forEach>

4、显示结果:
8abc8098269c7b4a2949c7b4a010011 总公司
8abc809826aa38d0294aa38d0a30000 山东分公司
8abc809826aa38d0294aa38d0a30001 张 三

你可能感兴趣的:(jsp)