数据标签
- property
描述
得到’value’的属性,如果value没提供,默认为堆栈顶端的元素.
<s:push value="myBean">
<!-- Example 1: -->
<s:property value="myBeanProperty" />
<!-- Example 2: -->
<s:property value="myBeanProperty" default="a default value" />
</s:push>
Example 1 显示出myBean’s getMyBeanProperty() 的执行结果.
Example 2 显示出myBean’s getMyBeanProperty() 的执行结果,如果是null,则显示缺省(default)值.
- set
描述:
set标签赋予变量一个特定范围内的值. 当希望给一个变量赋一个复杂的表达式,每次访问该变量而不是复杂的表达式时用到.其在两种情况下非常有用: 复杂的表达式很耗时 (性能提升) 或者很难理解 (代码可读性提高).
名称 | 必填 | 类型 | 描述 |
---|---|---|---|
nam | true | String | 变量的名字 |
scope | false | String | 变量作用域,可以为application, session, request, page, 或action. |
value | false | Object/String | 将会赋给变量的值 |
id | false | Object/String | 元素标识 |
<s:set var="test1" value="Test"></s:set>
<s:property value="test1"/>
- push (push值到堆栈中,方便应用.)
名称 | 必填 | 类型 | 描述 |
---|---|---|---|
value | true | Object/String | 要push到堆栈中的值 |
id | false | Object/String | 该元素标识 |
<s:push value="user">
<s:propery value="firstName" />
<s:propery value="lastName" />
</s:push>
将user的值push到栈中,从而使property标签的能够获取user的属性(firstName, lastName etc)
- action (向后台取值,数据初始化使用)
名称 | 必填 | 类型 | 描述 |
---|---|---|---|
id | false | String | 如果设定,将作为该Action在栈中的标识 |
name | true | String | action名字(不包括后缀,如.action) |
namespace | false | String | action所在命名空间 |
executeResult | false | Boolean | Action的result是否需要被执行 |
ignoreContextParams | false | Boolean | request中的参数是否需要传入该Action |
例子:
public class ActionTagAction extends ActionSupport {
public String execute() throws Exception {
return "done";
}
public String doDefault() throws Exception {
ServletActionContext.getRequest().setAttribute("stringByAction",
"This is a String put in by the action's doDefault()");
return "done";
}
}
<xwork>
....
<action name="actionTagAction2" class="tmjee.testing.ActionTagAction"
method="default">
<result name="done">success.jsp</result>
</action>
....
</xwork>
<s:action name="actionTagAction2" />
<s:property value="#attr.stringByAction" />
- url
描述:
该标签用于创建url,可以通过"param"标签提供request参数.
注意:
当includeParams的值时’all’或者’get’, param标签中定义的参数将有优先权,也就是说其会覆盖其他同名参数的值.
<s:url action="TagAction" namespace="/sy" var="test3"></s:url>
<s:property value="test3"/>
<s:a href="%{test3}">测试</s:a>
- param ( 子标签,跟action,url嵌套使用)
描述:
为其他标签提供参数,比如include标签和bean标签.
参数的name属性是可选的,如果提供,会调用Component的方法 addParameter(String, Object),如果不提供,则外层嵌套标签必须实现 UnnamedParametric接口(如TextTag).
该标签的两个属性
name (String) - 参数名
value (Object) - 参数值
<s:url action="TagAction" namespace="/sy" var="test4">
<s:param name="xx2" >参数值</s:param>
</s:url>
<s:property value="test4"/>
控制标签
1.iterator/if/elseif/else
<!--测试数据-->
<%
request.setAttribute("names", new String[]{"ns","ls","ww"});
request.setAttribute("inm", new Integer(99));
%>
<ul>
<s:iterator value="#request.names" var="s">
<li>
<s:property value="s"/>
</li>
</s:iterator>
</ul>
<!--if elseif else-->
<s:if test="#request.inm>99">a</s:if>
<s:elseif test="#request.inm>80">b</s:elseif>
<s:else>c</s:else>