struts2数据标签

数据标签主要用于提供各种数据访问相关的功能,主要包含如下几个:

(1) action:该标签用于在JSP页面直接调用一个Action,通过指定executeResult参数,还可以将该Action的处理结果包含到本页面中来。

(2) bean:该标签用于创建一个JavaBean实例。如果指定了var属性,则可以将创建的JavaBean实例放入Stack Context中。

(3) date:用于格式化一个日期

(4) debug:用于在页面上生成一个调试链接,当单机该链接时,可以看到当前ValueStack和Stack Context中的内容

(5) il8n:用于指定国际化资源文件的baseName

(6) include:用于在JSP页面中包含其他的JSP或Servlet资源

(7) param:用于设置一个参数,通常是用作bean标签,URL标签的字标签

(8) push:用于将某个值放入ValueStack的栈顶

(9) set:用于设置一个新的变量,并可以将变量放入指定的范围内

(10) text:用于输出国际化信息

(11) url:用于生成一个URL地址

(12) property:用于输出某个值。

 

1、 action标签

 

使用action标签有如下几个属性

(1) var:可选属性,一旦定义了该属性,该Action将被放入Stack Context中。

(2) name:必填属性,通过该属性调用指定该标签调用按个Action

(3) namespace:可选属性,该属性指定该标签调用的Action所在的namespace

(4) executeResult:可选属性,指定是否yaojaing是否要将Action的处理结果页面包含到本页面,默认为false。

(5) ignoreContextParams:可选属性,指定该页面中的请求参数是否需要传入调用的Action,默认为false。

 

2、 bean标签

bean标签用于创建一个JavaBean实例,还可以在标签内使用<param.../>标签为该JavaBean实例传入属性,这时应该为该JavaBean类提供setter和getter方法。该bean指定如下两个属性。

(1) name:必填属性,指定要实例化的JavaBean实现类。

(2) 可选属性,指定该属性则将JavaBean实例放入Value Context中,并放入requestScope中。

代码示例:

Person类:(JavaBean实现类)

package org.app;

public class Person  {
    private String name;
    private int  age;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }

}
 

jsp页面

 <s:bean name="org.app.Person">
          <s:param name="name" value="zhangsan"/>
          <s:param name="age" value="18"/>
          Person的实例name为:<s:property value="'zhangsan'"/>   
       Person的实例age为 :<s:property value="age"/>

上面的例子说明Person实例放在ValueStack的栈顶,可以直接访问,因此可以直接进行输出。还可以利用var属性来进行输出

代码示例:
          
      </s:bean><s:bean name="org.app.Person" var="p">
          <s:param name="name" value="'zhangsan'"/>
          <s:bean name="age" value="29"/>        
      </s:bean>
      Person实例的name值为:<s:property value="#p.name"/>
      Person实例的age 值为:<s:property value="#p.age"/>
      ${requestScope.p}

注意:该实例实在requestScope中,因此要访问的时候需要从requestScope中取出来才能访问其属性,不加上最后一行代码会出现问题,无法访问name和age属性。

 

3、 date标签

改变标签用于格式化一个输出日期,该标签指定了如下几个属性:

(1) format:可选属性,指定后将根据该属性指定的格式来格式化日期。

(2) nice:可选属性,只能为true或false,用于是否输出指定日期与当前时刻的时间差

(3) name:必填属性,指定要格式化的日期

(4) var:可选日期,指定该属性将格式化后的字符放入Stack Context 中,并放如requestScope中,但不会输出。

 

4、 debug标签

辅助调试,页面生成一个链接,通过该链接可以看到ValueStack和Stack Context中的所有值的信息。

 

5、 include标签

将一个JSP页面或者Servlet包含到本页面,页面的名称为value属性。还可以使用<param.../>将多个参数包含到本页面。

 

6、 param标签

为其他标签提供参数。

 

7、 push标签

将某个值放到ValueStack的栈顶,从而可以方便的进行访问该值,其中有一个必填的属性:value,指定需要放入的值。

代码示例:

<s:bean name="org.app.Person" var="p">
          <s:param name="name" value="'zhangsan'" />
          <s:param name="age" value="19"/>
      </s:bean>
      <s:push value="#p">
          ValueStack栈顶对象的name属性为:<s:property value="name"/><br/>
          ValueStack栈顶对象的age 属性为:<s:property value="age"/>
      </s:push>

结果

放入栈顶,就可以直接访问。还得注意:获取该栈顶的元素时还必须将取值那两行代码放在push标签内,否则不会访问到该元素。即,push标签表示临时将元素放入栈顶,过了该标签就会释放该元素。

 

8、 set标签

该标签用于将某个值放入指定范围内,例如application范围,session范围。该标签有如下几个属性:

(1)scope:可选属性,指定新变量被放置的范围,该属性可以接受application、session、request、page和action5个值。放入Action即放入request范围,并被放入Stack Context中。

(2) value:可选属性,指定将赋给变量的值,若没有指定该属性则将ValueStack栈顶的值赋给新变量。

(3) var:可选属性,指定将该值放入ValueStack中。

代码示例

<s:bean name="org.app.Person" var="p">
         <s:param name="name" value="'zhangsan'"/>
         <s:param name="age" value="29"/>
     </s:bean>
     
     将Stack Context中的p值放入默认范围(Action)范围<br/>
     <s:set value="#p" var="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}<br/>
         
     将Stack Context中的p值放入application范围内<br/>
     <s:set var="yyy" value="#p" scope="application"/>
         application范围的yyy对象的name属性为:${applicationScope.yyy.name}<br/>
         application范围的yyy对象的age 属性为:${applicationScope.yyy.age}<br/>
     
     将Stack Context中的p值放入session中<br/>
     
     <s:set var="zzz" value="#p" scope="session"/>
         session范围的zzz对象的name属性为:${sessionScope.zzz.name}<br/>
         session范围的zzz对象的age 属性为:${sessionScope.zzz.age}<br/>

结果:

在属性中直接设置scope即将该对象放入指定的范围,然后通过${xxxScope}来访问对象的属性。

 

9、 URL标签

该标签用于生成一个URL地址,可以通过该标签指定param子元素,从而向指定的URL地址发送请求参数。该标签有以下几个属性:

(1) action:可选属性,指定生成URL地址为那个Action ,如果不指定Action,则使用value作为URL的地址值

(2) anchor:可选属性,指定URL的锚点

(3) encode:可选属性,指定是否需要对参数进行编码,默认为true

(4) escapeAmp:可选参数,指定是否对&符号进行编码,默认为true

(5) forceAddSchemeHostAndPort:可选参数,指定是否需要在URL对应的地址里强制添加scheme、主机和端口。

(6) includeContext:可选属性,指定是否需要将当前上下文包含在URL地址中

(7) method:可选属性,指定Action方法,将链接到指定Action的特定方法

(8) namespace:可选属性,指定命名空间,指定该属性将链接到指定namespace的指定Action处

(9) portleMode:可选属性,指定结果页面的portle模式

(10) scheme:可选属性,设置scheme属性

(11) value:可选属性,指定生成URL的地址值

(12) var:可选属性,指定该属性将链接的值放入ValueStack中

(13) windowState:可选属性,指定页面portle的窗口状态。

 

10、 property标签

作用为输出指定值,即输出value属性指定的值,如果没有指定value,则默认输出ValueStack栈顶的值。直接输出栈顶的值上面的示例代码中有。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值