版权声明: https://blog.csdn.net/hu18315778112/article/details/84864674
-
先将数据存到ActionContext中,然后再jsp中通过struts-tags标签库中的标签获取并显示数据
数据准备:
@Override
public String execute() throws Exception {
List<String> list=new ArrayList<String>();
list.add("aaa");
list.add("bbb");
list.add("ccc");
ActionContext.getContext().put("list", list);
Map<String, String> map=new HashMap<>();
map.put("name", "huhu");
map.put("age", "18");
map.put("gender", "男");
map.put("cool", "cool");
ActionContext.getContext().put("map", map);
return "list";
}
jsp中使用的标签:
<h1>struts标签演示</h1>
<s:property /><br>
<s:iterator value="#list">
<s:property /><br>
</s:iterator>
<s:iterator value="map" var="m">
<s:property /><br>
</s:iterator>
<s:property value=""/><br>
<s:iterator begin="1" end="10" status="a">
<s:property/>|<s:property value="#a.count"/><br>
</s:iterator>
<s:property value="#list.size()"/>
<s:if test="#list.size()==2">
<s:property value="#list.size()"/>
</s:if>
<s:else>
<s:property value="#map.size()"/>
</s:else>
页面显示内容:
可见,标签效果
-
<s:property />标签默认获取ActionContext栈顶的数据并返回该数据,StrutsAction就是我创建的Action类的类名,显然这个标签获取到了此Action类的实例对象。
-
<s:iterator value="#list">可以任务是循环标签,value可以使用ognl表达式语言获取数据,然后改标签对这个数据进行循环(如果可循环),然后循环体内使用<s:property />就可以直接获得本次循环的数据
-
<s:if test="#list.size()==2">判断标签,test属性值填写要判断的ognl表达式,同时,此标签支持 if……elseif……else 连续使用,与java语言中的 if……else if用法相同。
-
<s:iterator begin="1" end="10" status="a">
<s:property/>|<s:property value="#a.count"/><br>
</s:iterator> 同样为循环,可以理解为数字循环,begin为开始的值,end为结束的值,status是一个信息记录对象,本例中,每次循环会创建一个名a的对象,用于记录本次循环 的信息,使用"#a.count"可以获取本次循环是第几次循环,此式仍然为ognl表达式。