内容如下:
通用标签: property , set ,bean , include , param , debug
set标签 (1)默认为actionscope ,会将值放入request 和 actioncontext中,
(2)这是可设置的其它范围值 page , request , session , application
include 标签:对中文文件支持有问题,不建议使用,如需包含,改用jsp包含
property:
<li>property: <s:property value="username"/> </li> <li>property 取值为字符串: <s:property value="'username'"/> </li> <li>property 设定默认值: <s:property value="admin" default="管理员"/> </li> <li>property 设定HTML: <s:property value="'<hr/>'" escape="false"/> </li>
property取值为字符串里面的要加单引号。
property设定HTML ,如果escape为false,则,<hr/>不显示,为true,在页面显示。
结果演示:
set
<li>set 设定adminName值(默认为request 和 ActionContext): <s:set var="adminName" value="username" /></li> <li>set 从request取值: <s:property value="#request.adminName" /></li> <li>set 从ActionContext取值: <s:property value="#adminName" /></li>
<li>set 设定范围: <s:set name="adminPassword" value="password" scope="page"/></li> <li>set 从相应范围取值: <%=pageContext.getAttribute("adminPassword") %></li> <li>set 设定var,范围为ActionContext: <s:set var="adminPassword" value="password" scope="session"/></li> <li>set 使用#取值: <s:property value="#adminPassword"/> </li> <li>set 从相应范围取值: <s:property value="#session.adminPassword"/> </li>
定义一个变量adminName, 它的值是username的值。如果没有设置scope的值,那么这个值默认放在request 和 actioncontext里面。
设定set的范围为page,用<% -- %>取值。
set中用 name,只会出现在相应的范围里面去,但是用 var,会出现在actioncontext里面,name这个已经被废弃了。
如果set的范围为默认的actioncontext,那么可以用#取值。
如果set的范围设置的为session,那么用 #session.adminPassword
总结: 动手试试看,在debug里面检查一下,放到哪就用相应的方法去取值。
(set标签通常用来换名字,简化长的名字。)
bean 和 param
<li>bean 定义bean,并使用param来设定新的属性值: <s:bean name="com.bjsxt.struts2.tags.Dog" > <s:param name="name" value="'pp'"></s:param> <s:property value="name"/> </s:bean> </li> <li>bean 查看debug情况: <s:bean name="com.bjsxt.struts2.tags.Dog" var="myDog"> <s:param name="name" value="'oudy'"></s:param> </s:bean> 拿出值: <s:property value="#myDog.name"/> </li>
在bean中设置var对象,才会在debug的actioncontext中看到此对象。出了bean标签和在其他地方都可以访问到,但是如果不用var,则只能在bean标签中访问到此对象和定义的param。
value的值必须加上单引号 'XXX' ,这样才会被当做字符串输出,不然就会被认为是OGNL表达式。
总结: name 和 var
include //不想看
<s: fielderror >标签
public String execute() { this.addFieldError("fielderror.test", "wrong!"); return SUCCESS; }
<s:fielderror fieldName="fielderror.test" theme="simple"></s:fielderror>
在后台action类中添加一个fielderror的信息,在前台用fielderror标签去除这个信息,但是此标签会有固定的格式,把theme设置成simple可以去掉此格式(据说没有用)。
控制标签: if elseif else , iterator , subset
if elseif else标签
iterator标签(遍历一个集合)
使用var属性
使用status属性
注: 是不是偶数或奇数:是问你遍历了第几个
用iterator遍历Map
注:定义map时,前面有个# 号
iterator可以遍历各种集合:collections(list ,set ,stack ,队列queue)、map、enumeration、iterator、array
UI标签(不想看)
AJAX标签
$ # % 的区别