不知道struts2中的iterator怎么迭代出我下面想要的东西
private List lt;
public List getLt() {
return lt;
}
public void setLt(List list) {
this.list = list;
}
public String show(){
Session session = SessionFactory.getSession();
Transaction tx = session.beginTransaction();
List lt = new ArrayList();
list = session.createQuery("from Talk ").list();
Talk talks = new Talk();
for(int i = 0 ;i<list.size();i++){
talks = (Talk)list.get(i);
lt.add(i,talks.getTitle());
}
System.out.println(lx);
tx.commit();
session.close();
return SUCCESS;
}
我先再jsp中使用struts2的iterator标签迭代出来 这里的 lt 和中的内容
曾经的jsp页面是这么写的 但是总是提示无任何信息在里面
<body>
<s:if test="lt==null">
无任何信息在这里!
</s:if>
<s:else>
<s:iterator value="lt" >
<s:if test="lt!= null ">
<s:property value="lt" />
</s:if>
<s:else>
访问无效
</s:else>
</s:iterator>
</s:else>
</body>
------解决思路----------------------
<s:iterator value="lt" > 这个可以这样写吗?貌似是 <s:iterator value="${lt}" > struts标签好久没用了
------解决思路----------------------
1、最好不要用lt这个变量,这个和<是有冲突(可以换个变量名)
2、后台代码(get、set要对应,当然按照你目前的写法,其实是用不到setLt这个方法的)
public void setLt(List list) {
this.list = list;
}
应该是
public void setLt(List list) {
this.lt= list;
}
3、前台代码
<s:if test="lt==null">
无任何信息在这里!
</s:if>
<s:else>
<s:iterator value="lt" id="st">
<s:if test="%{#st!= null}">
<s:property value="#st.id" />
<s:property value="#st.name" />
//继续添加你的代码
</s:if>
<s:else>
访问无效
</s:else>
</s:iterator>
</s:else>
可以写成这样
这个时候的st就相当于你的talk这个表对应的bean对象
注意:所有涉及到lt的最好换掉,改为其它变量