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标签

 

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 煤气押金单没了怎么办 中国建设银行登录密码忘了怎么办 中国建设银行登录密码忘记了怎么办 公司车辆怎么办换新能源牌 杭州新能源汽车牌照外地人怎么办 建行登录密码忘了怎么办 新捷达epc灯亮怎么办 捷达车玻璃升降偏离怎么办 交金中断一个月怎么办 博士拟录取没导师怎么办 保研联系导师后怎么办 特别害怕和导师交流怎么办 面试工资要少了怎么办 一面工资要低了怎么办 家乐卡到期本金还一半怎么办 新三板公司没有资不抵债没钱怎么办 户户通智能卡坏了怎么办 秦岭云无法回看怎么办 身份证在火车站丢了怎么办 到火车站发现身份证丢了怎么办 广电宽带太慢了怎么办 车有后雷达想装前置雷达怎么办 现代朗动油耗大怎么办 雷达线雕头里有水怎么办 上古卷轴5免疫死亡奴役怎么办 dw手表时针不动了怎么办 雷达陶瓷表壳摔坏了怎么办 雷达表盘摔坏了怎么办 雷达测速60超了怎么办 卡西欧手表电池没电了怎么办 审稿人让引用他的文章怎么办 考二建未从事该行业满两年怎么办 2档换3档离合器怎么办 高铁车票丢了怎么办 事业编制调动原单位不同意怎么办 想去铁路上工作怎么办 房产权50年以后怎么办 在香港手机没电怎么办 学校官网登陆忘记密码怎么办 网上申报学校忘记密码怎么办 专转本想换专业怎么办