Struts 2的标签库(3)——数据标签
来源:互联网 发布:java邮箱正则表达式 编辑:程序博客网 时间:2024/05/02 04:36
Struts 2数据标签
1)action标签
action标签有如下属性:
- var:将该action放入ValueStack中;可用id代替
- name:必填。指出调用哪个action
- namespace:指出该标签调用的action所在的namespace
- executeResult:该属性指定的是要将Action的处理结果页面包含到本页面。该默认属性为false时,即不包含。
- ignoreContextParams:指定该页面的请求参数是否需要传入到调用的action中。该默认属性为false时,即将本页面的请求参数传入被调用的action中。
action:
package lee;import com.opensymphony.xwork2.ActionSupport;import com.opensymphony.xwork2.ActionContext;public class TagAction extends ActionSupport{//封装用户请求参数的author属性private String author;//author属性的setter和getter方法public void setAuthor(String author){this.author = author;}public String getAuthor(){return this.author;}//定义第一个处理逻辑public String execute() throws Exception{return "done";}//定义第二个处理逻辑public String login() throws Exception{ActionContext.getContext().put("author", getAuthor());return "done";}}
struts配置:
<package name="lee" extends="struts-default"><!-- 定义第一个Action,使用lee.TagAction的execute方法作为控制处理逻辑 --><action name="tag1" class="lee.TagAction"><result name="done">succ.jsp</result></action><!-- 定义第二个Action,使用lee.TagAction的login方法作为控制处理逻辑 --><action name="tag2" class="lee.TagAction" method="login"><result name="done">loginSucc.jsp</result></action><action name=""><result>.</result></action></package>
jsp应用:
<body>下面调用第一个Action,并将结果包含到本页面中。<br><s:action name="tag1" executeResult="true"/><hr/>下面调用第二个Action,并将结果包含到本页面中。<br>但阻止本页面请求参数传入Action。<br><s:action name="tag2" executeResult="true" ignoreContextParams="true"/><hr/>下面调用第二个Action,且并不将结果包含到本页面中。<br><s:action name="tag2" executeResult="false"/>本页面是否可访问?<s:property value="author"/></body>
2)bean标签
bean标签用于创建一个javabean实例。可以在该标签体内使用<param .../>标签为该javabean实例传入属性,如果我们需要使用<param .../>标签为该javabean实例传入属性值,则应该为该javabean类提供对应的setter方法;若我们还希望能访问该javabean的某个属性,则应该为该属性提供一个对应的getter方法。
bean标签的属性:
- name:必填。指定要实例化的javabean的实现类
- var:将该action放入StackContext中而并非ValueStack中;从而允许直接通过该var属性来访问该javabean实例。
如:
javabean实例在ValueStack的栈顶时:
<body><!-- 使用bean标签创建一个lee.Person类的实例 --><s:bean name="lee.Person"><!-- 使用param标签为lee.Person类的实例传入参数 --><s:param name="name" value="'yeeku'"/><s:param name="age" value="29"/><!-- 因为在bean标签内,lee.Person实例位于ValueStack的栈顶,故可以直接访问lee.Person实例 -->Person实例的name为:<s:property value="name"/><br>Person实例的age为:<s:property value="age"/></s:bean></body>
javabean实例在Stack Context中时:
<body><!-- 使用bean标签创建一个lee.Person类的实例,为其指定了var属性 --><s:bean name="lee.Person" var="p"><!-- 使用param标签为lee.Person类的实例传入参数 --><s:param name="name" value="'yeeku'"/><s:param name="age" value="29"/></s:bean><!-- 根据JavaBean实例指定的var属性来访问JavaBean实例 -->Person实例的name为:<s:property value="#p.name"/><br>Person实例的age为:<s:property value="#p.age"/></body>
该例中action只有简单的setter和getter方法,故不做详述。
3)date标签
.
<%//生成一个Date实例java.util.Date now = new java.util.Date(107, 12, 23, 13, 23, 24);//将该Date实例设置成一个pageContext里的属性pageContext.setAttribute("now" , now);%>nice="false",且指定format="dd/MM/yyyy"<br><s:date name="#attr.now" format="dd/MM/yyyy" nice="false"/><hr>nice="true",且指定format="dd/MM/yyyy"<br><s:date name="#attr.now" format="dd/MM/yyyy" nice="true"/><hr>指定nice="true"<br><s:date name="#attr.now" nice="true" /><hr>nice="false",且没有指定format属性<br><s:date name="#attr.now" nice="false"/><hr>
4)debug标签
5)include标签
如:
<s:include value="included-file.jsp"/><!-- 使用include标签来包含其他页面,并且传入参数 --><s:include value="included-file.jsp"><s:param name="author" value="'yeeku'"/></s:include>
被包含的页面:可以用param来获取传递过来的值
<body><h3>被包含的页面</h3>author参数值为:${param.author}</body>
6)param标签
7)push标签
<!-- 使用bean标签创建一个JavaBean实例,指定var属性,并将其放入Stack Context中 --><s:bean name="lee.Person" var="p"><s:param name="name" value="'yeeku'"/><s:param name="age" value="29"/></s:bean><!-- 将Stack Context中的p对象放入ValueStack栈顶--><s:push value="#p"><!-- 输出ValueStack栈顶对象的name和age属性 -->ValueStack栈顶对象的name属性:<s:property value="name"/><br>ValueStack栈顶对象的age属性:<s:property value="age"/><br></s:push>
8)set标签
set标签用于将某个值放入指定范围内,例如:application范围、session范围等
如果指定action范围,则将该值放入request范围中,并被放入Struts2的Stack Context中。
<body><h2>使用s:set设置一个新变量</h2><!-- 使用bean标签定义一个JavaBean实例 --><s:bean name="lee.Person" id="p"><s:param name="name" value="'yeeku'"/><s:param name="age" value="29"/></s:bean>将Stack Context中的p值放入默认范围(action)内。<br /><s:set value="#p" name="xxx"/>Stack Context内xxx对象的name属性:<s:property value="#xxx.name"/><br />Stack Context内xxx对象的age属性:<s:property value="#xxx.age"/><br />request范围的xxx对象的name属性:${requestScope.xxx.name}<br />request范围的xxx对象的age属性:${requestScope.xxx.age}<hr />将Stack Context中的p值放入application范围内。<br /><s:set value="#p" name="xxx" scope="application"/>application范围的xxx对象的name属性:${applicationScope.xxx.name}<br />application范围的xxx对象的age属性:${applicationScope.xxx.age}<hr />将Stack Context中的p值放入session范围内。<br/><s:set value="#p" name="xxx" scope="session"/>session范围的xxx对象的name属性:${sessionScope.xxx.name}<br />session范围的xxx对象的age属性:${sessionScope.xxx.age}</body>
注:application范围是指在Web应用程序运行期间,所有的页面都可以访问在这个范围内的对象。
9)url标签
url标签用于生成一个URL地址,可以通过为url标签指定param子元素,从而向指向URL发送请求参数。
10)property标签
- Struts 2的标签库(3)——数据标签
- Struts 2的标签库(2)——控制标签
- Struts 2的标签库(4)——标表单标签与非表单标签
- struts 2的标签库
- struts 2标数据标签--date标签
- struts数据标签的使用
- struts数据标签的使用
- Struts 2的标签库(1)——标签库基础
- struts的标签库
- Struts的标签库
- Struts的标签库
- Struts 2 数据标签教程
- Struts 2标签库
- struts 2 标签库
- Struts 2标签库
- Struts 2 标签库
- Struts——标签
- Struts 2标签库的表单标签使用
- MapActivity:Couldn't get connection factory client
- 自定义标签2
- Struts 2的标签库(4)——标表单标签与非表单标签
- 基于Delphi的Socket I/O模型全接触
- 电话号码正则表达式
- Struts 2的标签库(3)——数据标签
- Java流与文件操作
- FL2440无操作系统应用程序编写测试003——LED
- 用Delphi实现Socket5代理编程
- 程序员面试100题之十一:数组循环移位
- Java流与文件操作
- www
- 一个delphi的SOCKET 程序
- C# 常用字符串函数