Struts2 取值问题
1、值存放地方上下文ActionContext
这里里面有一个map,他存放了很多对象包括了request、session、application、attr、value stack
2、对于默认的<s:property value="没有#开头"/>他默认调用OGNL,ognl一开始默认从value stack去找,这个栈值对象其实来自action中。
3、如果#开头,不是从栈值去找了,去上下文中找
1、hashmap下拉列表时候
代码:
private HashMap bankMap;
bankMap = new LinkedHashMap();
for(DicResp.Record record:dicList) {
this.bankMap.put(record.getId(), record.getDescription());
}
2、hashmap的value是list时候
结构是这样的projectList subProjectMap subProjectMap根据projectId作为key。
id为: 名称:
asdf
3、jsp页面批量添加,action使用List来接受参数
1、你的struts2的拦截器需要打开拦截params
2、在jsp页面这么写:
[code="java"] no1:
手输名称:
标化名称:
项目id:
相关部门Id(中间逗号隔开):
计划开始时间:
计划结束时间:
备注(最大内容不大于200字符):
no2:
手输名称:
标化名称:
合同项目id:
相关部门Id(中间逗号隔开):
计划开始时间:
计划结束时间:
备注(最大内容不大于200字符):
3、在action页面只需要:List stages;有他的get和set方法即可。
3、在jsp页面遍历HashMap
前提条件:action页面HashMapstages>
[code="java"] //注意这里使用[0]来访问list第一个对象
手输名称:
(隐藏id显示)标化名称:--需要显示的名称:${stage.stageName.name }
(隐藏id显示)项目id:
(隐藏id显示)合同项目id:
相关部门Id(中间逗号隔开):
计划开始时间:">
计划结束时间:">
备注(最大内容不大于200字符):
4、list中的保存数组
- <s:iterator value="collection1" status="status">
- <s:property value="collection1[#status.index][0]"/>
- <s:property value="collection1[#status.index][1]"/>
- </s:iterator>
5、郁闷,这个编辑器不好用。。。
6、
<s:set name="index" value="1" />
<s:iterator id="item1" value="sxsl.sxdataList" status="stuts">
<s:if test="#item1.dataId==#item.seq&&#index==1">
<s:set name="index" value="2" />
<img src="img/ico_submit_16.gif" />
</s:if>
</s:iterator>
通过s:set 设置初始值
当进入循环后,达到某条件。修改变量值,以后再怎么循环都不会进s:if了。
5、struts2中字符串的拼接
<s:if test="#request.pepMap!=null&&#request.pepMap.size()>0">
<s:iterator value="#request.postList" id="post">
<tr>
<td><s:property/></td>
<s:iterator value="#request.yearMonthList" id="ym">
<s:set name="ympost" value="%{#ym.concat(#post)}"></s:set>
<td><s:property value="#ympost"/> </td>
<%-- <td><s:property value="#request.pepMap[%{#ympost}]"/> </td> --%>
</s:iterator>
</tr>
</s:iterator>
</s:if>