property:输出指定属性值
bean:创建一个JavaBean实例
存在以下类:
调用方法如:
注意:为bean设置id标签之后,该bean对象实例将会保存在OgnlContext中而不是ValueStack中,所以访问该对象时应该使用'#'
set:将某个值放入指定的范围内
include:包含一个jsp页面或者servlet页面
value=想要输出的属性名称
<s:property value="property"/>
param:创建某参数
name=指定被设置的参数名
value=被设置参数的参数值,Object类型(字符串:'String…')
id=引用该元素的id
<s:param name="user">test</s:param> //创建参数user="test";
<%
User u = new User();
request.serAttribute("test",u);
%>
<s:param name="user" value="test"/> 创建参数user=Attribute中的test,即user=u;
<s:param name="user" valude="'test'"/>创建参数user="test";
bean:创建一个JavaBean实例
存在以下类:
public class Person{
private String name;
private int age;
public String getName(){
return name;
}
public int getAge{
return age;
}
public void setName(String name){
this.name=name;
}
public void setAge(int age){
this.age=age;
}
}
调用方法如:
<s:bean name="Person" id="P">
<s:param name="name" value="'Friskit'"/>
<s:param name="age" value="20"/>
</s:bean>
姓名:<s:property value="#P.name"/>
年龄:<s:property value="#P.age"/>
注意:为bean设置id标签之后,该bean对象实例将会保存在OgnlContext中而不是ValueStack中,所以访问该对象时应该使用'#'
set:将某个值放入指定的范围内
name=被放置变量的名称
scope=有效范围:application|session|request|page|action 若未指定,则放置在OgnlContext中,需要用'#'访问
value=变量值,若未指定,则默认值为ValueStack
id:该元素的应用id
调用方法如:
<s:bean name="Person" id="p">
<s:param name="name" value="'Friskit'"/>
<s:param name="age" value="20"/>
</s:bean>
<!--将原本放在OgnlContext中的p值放入默认范围内(OgnlContext)-->
<s:set name="p1" value="#p"/>
姓名:<s:property value="#p1.name"/>
年龄:<s:property value="#p1.age"/>
<br>
<!--将原本放在OgnlContext中的p值放入application范围内-->
<s:set name="p2" value="#p" scope="application"/>
姓名:<s:property value="#application.p2.name"/>
年龄:<s:property value="#application.p2.age"/>
<br>
<!--将原本放在OgnlContext中的p值放入session范围内-->
<s:set name="p3" value="#p" scope="session"/>
姓名:<s:property value="#session.p3.name"/>
年龄:<s:property value="#session.p3.age"/>
include:包含一个jsp页面或者servlet页面
value=所包含内容的地址
id=钙元素的应用id。
调用方法如:
<s:include value="file.jsp"/>
注,可为s:include设置多个param子标签,用以向value所指地址传递参数
url:url产生器
action=指定目标action(可选)
value=指定目标地址(与action标签二选一,若两者皆无,则将当前页面作为地址值)
includeParams=指定是否包含请求参数,可为none|get|all
scheme=设定scheme属性
namespace=指定命名空间(只与action属性一同使用时有效)
method=指定只用action中的方法
encode=指定是否需要对请求参数进行编码
includeContext=指定是否要将当前上下文包含在URL中
anchor=指定URL的锚点
id=指定该url元素的id,使用该属性时,生成的url不会在页面上输出,但是可以通过id引用。
escapeAmp=指定是否将特殊符号&解析成实体&
调用方法如:<!--指定value属性的形式,生成相对路径--><br>
<s:url value="reg.action"/>
<!--指定value属性的形式,生成绝对路径--><br>
<s:url value="/reg.action"/>
<hr/>
<!--指定action属性,并且使用param传入参数-->
<s:url action="reg">
<s:param name="method" value="'list'"/>
</s:url>
<!--指定action属性,和namespace联合使用--><br>
<s:url action="reg" namespace="/admin">
<s:param name="method" value="'list'"/>
</s:url>
<hr/>
<!--action和value都不指定,并且使用param传入参数-->
<s:url includeParams="get">
<s:param name="userName" value="'Friskit'"/>
</s:url>
输出内容如下:
reg.action
/Struts2_Test/reg.action
------------------------
/Struts2_Test/reg.action?method=list
/Struts2_Test/admin/reg.action?method=list
------------------------
/Struts2_Test/tagsTest.jsp?userName=Friskit