Struts2学习——拓展:struts标签库

版权声明: 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表达式。

struts标签库不仅有这些数据控制标签,还有表单标签等。表单标签,就是可以使用此标签创建表单,知识写法上不同,最后在页面显示仍然是翻译为form表单来实现。

其中不得不说的就是ognl表达式的使用很频繁。ognl表达式语言是十分强大的。Struts2框架中的数据传输基本都是使用ognl来完成的,所以Struts2框架也自带ognl的jar包,学好ognl表达式,对Struts2框架的理解十分有好处。。。。。。

猜你喜欢

转载自blog.csdn.net/hu18315778112/article/details/84864674