1:Struts2标签的分类

   *数据标签:用于从值栈上取值或者向值栈赋值

   *控制标签:控制程序的运行流程,比如分支和循环控制

   *UI标签:用来显示UI页面的标签,多会生成HTML

   *杂项标签: 用于完成其他功能的标签,比如生成URL和输出国际化文本等。


2:property标签

   常见的一些属性:

    value: 用来获取值的OGNL表达式

    escape: 是否转义HTML,默认为true

    escapeCsv: 是否转印CSV文件

    escapeHtml:是否转义html

    escapeJavaScript: 是否转义javascript

    escapeXml: 是否转义xml

    简单示例1:

       

<s:push value="myBean">
<!-- Example 1: -->
<s:property value="myBeanProperty" />

<!-- Example 2: -->TextUtils
<s:property value="myBeanProperty" default="a default value" />
</s:push><s:property value="'<hr>'"/>
<s:property value="'<hr>'" escape="false"/>



Example 1 prints the result of myBean's getMyBeanProperty() method.
Example 2 prints the result of myBean's getMyBeanProperty() method and if it is null, print 'a default value' instead

简单示例2:
<body>
<%
request.setAttribute("request", "request中的值");
%>

输出value值:<s:property value="#request.request"/><br>
输出缺省值:<s:property value="#request.default" default="request中的默认值"/><br>
输出栈顶对象:<s:property/>
</body>
输出value值:request中的值
输出缺省值:request中的默认值
输出栈顶对象:com.opensymphony.xwork2.DefaultTextProvider@a415a3
简单示例3,属性escape的使用:
<s:property value="'<hr>'"/>
<s:property value="'<hr>'" escape="false"/>
<s:property value="#session.user.name"/>
<s:property value="#session.user.age"/>
<s:set var="tempUser" value="#session.user"></s:set>
<s:property value="#tempUser.name"/>
<s:property value="#tempUser.age"/> <s:set var="i" value="1" />
输出i值:<s:property value="#i"/><br>
<s:set var="i" value="#i + 1" />
输出i值:<s:property value="#i"/>

输出结果:
<s:set var="v1" scope="application" value="'application范围的值'"></s:set>
<s:set var="v2" scope="session" value="'session范围的值'"></s:set>
<s:set var="v3" scope="request" value="'request范围的值'"></s:set>
<s:set var="v4" scope="page" value="page范围属性的值"></s:set>
<s:set var="v5" scope="action" value="'action范围的值'"></s:set>
<a href="set_output.jsp">跳转到输出界面</a>
输出application范围的值:<s:property value="#application['v1']"/><br>
输出session范围的值:<s:property value="#session['v2']"/><br>
输出request范围的值:<s:property value="#request['v3']"/><br>
输出page范围的值:<s:property value="#attr['v4']"/><br>
输出action范围的值:<s:property value="#v5"/><br>

输出的值:<s:bean name="com.capinfotech.model.User" var="user">
<s:param name="age" value="20" />
</s:bean>

<s:property value="#user.age"/>
<%
Timestamp t = Timestamp.valueOf("2010-09-22 00:00:00");
Date d = new Date(t.getTime());
request.setAttribute("d", d);
%>
当前日期为:<s:date name="#request.d" format="yyyy-MM-dd"/><br>
当前时间与指定时间之间:<s:date name="#request.d" format="yyyy-MM-dd" nice="true"/>
<s:url action="ognlAction" namespace="/hello">
<s:param name="uuid" value="'01'" />
</s:url>/Struts2DemoSrc/hello/ognlAction.action?uuid=01
<s:url action="ognlAction" namespace="/hello" id="test">
<s:param name="uuid" value="'01'" />
</s:url>这样运行,再访问页面,发现是一片空白,因为设置了id属性,url标签把生成的url字符串放入值栈等待其他的标签使用 <s:url action="ognlAction" namespace="/hello" id="test">
<s:param name="uuid" value="'01'" />
</s:url>
<s:a href="%{test}">超链接</s:a> <s:a action="ognlAction" namespace="/hello" >
<s:param name="uuid" value="'01'" />
超链接
</s:a>