我遍历一个项目列表,如果元素的状态等于学生或教师,则需要显示特定的下拉列表。以下代码显示所有字段,但不显示任何元素的下拉列表!
以下代码的结果是:
上述结果显示了第一个人的状态与其他人分离,因此最后的值:[]没有显示任何状态。
如果我去掉Status: ${Status},结果将是:
<s:iterator value="listOfPeople" status="element">
.....
<s:if test='%{elements[#element.index].Status.equalsIgnoreCase("Student") ||
elements[#element.index].Status.equalsIgnoreCase("Teacher")}'>
<s:select name="elements[%{#element.index}].Status"
id="elements[%{#element.index}].Status"
label="Status"
list="#{'Student':'Student','Teacher':'Teacher'}"
headerKey = "-1"
headerValue=" "
value="%{Status}"
/>
</s:if>
在控制器中:
PeopleModel peopleModel = new PeopleModel();
listOfPeople = peopleModel.findPeople();
System.out.println("size is:" + listOfPeople.size()); //returns 8
return "listPeople";
我的模型:
List<People> people = new ArrayList();
final Session session = HibernateUtil.getSession();
try {
final Transaction tx = session.beginTransaction();
try {
Criteria criteria = session.createCriteria(People.class, "People")
people.addAll((List<People>) criteria.list());
if (!tx.wasCommitted()) {
tx.commit();
}
if (session.isOpen()) {
session.close();
}
System.out.println("size is ::: " + people.size()); //returns 8
return people;
} catch (Exception e) {
tx.rollback();
e.printStackTrace();
}
} finally {
HibernateUtil.closeSession();
}
return null;
}
以下代码的结果是:
Status: ${Status}
<br/>value : [<s:property value="elements[%{#element.index}].Status" />]
是
Status : Principle
value : [] Status : Student
value : [] Status : Teacher
value : [] Status : Teacher
value : [] Status : Teacher
value : [] Status : Teacher
value : [] Status : Teacher
value : [] Status : Teacher
value : []
上述结果显示了第一个人的状态与其他人分离,因此最后的值:[]没有显示任何状态。
如果我去掉Status: ${Status},结果将是:
value : []
value : []
value : []
value : []
value : []
value : []
value : []
value : []
Status
,这是错误的,程序会运行失败。 - Andrea LigioslistOfPeople
列表保存了People
?请发布People
类。 - Aleksandr M