急求高手,使用ssh框架写项目时,就是先执行action,数据查到了,不能显示在页面上
<s:action name="selInfoAll" namespace="/" executeResult="true"></s:action>
这句话应该是执行了,SQL语句都打印了,可是在当前页面
<div>
<s:iterator value="%{list}" id="li" status="st">
<s:textfield value="%{#li.getT_email()}"></s:textfield>
</s:iterator>
</div>
查询时,没有结果
[解决办法]
这个要看你action中是把值放到栈中还是map映射中了。能贴一下你action中存放数据的代码莫
比如:
放在map映射中:
Collection<Station> lists = this.stationService.findAllStation();获取的时候
ActionContext.getContext().put("list", list);
<s:iterator value="list" id="li" status="st">
<s:textfield value="%{#li.getT_email()}">
</s:textfield></s:iterator>
放在值栈中:
Collection<Station> lists = this.stationService.findAllStation();获取的时候
ActionContext.getContext().getValueStack().getRoot().push(list);
<s:iterator value="top" id="li" status="st">
<s:textfield value="%{#li.getT_email()}">
</s:textfield></s:iterator>
你那种获取方式也没问题,就是有点不规范,应该是action存放值的时候出现了问题
[解决办法]
<div>
<s:iterator value="%{list}" id="li" status="st">
<s:textfield value="%{#li.getT_email()}"></s:textfield>
</s:iterator>
</div>
这个代码段value="%{list}"虽然可以这么写,但是没有意义,直接value="list" 下面既然是textfield不是property为什么把值放在value里面,本来用#就是取堆栈的值,后面还要加get方法做什么,如果你后台list里面的pojo里面有get方法,直接<s:textfield name="t_email"></s:textfield> 改了之后就行了