Struts2的bean标签用法

来源:互联网 发布:去眼袋眼霜 知乎 编辑:程序博客网 时间:2024/06/05 07:41

      Struts2的bean标签用于创建一个JavaBean的实例。创建实例时通过<s:param  />给JavaBean传入参数。如果通过<s:param  />给JavaBean传入属性值则需要给JavaBean设置setter方法,如果需要访问JavaBean的属性则需要设置getter方法。

      我们也可以直接调用JavaBean中的方法,也可以给方法传入参数。

      我建了一个JavaBean,里面有两个属性man,woman,同时也创建了两个方法,其中一个带参数,代码如下:

    package com.iman.model;             public class Person {          private String man;          private String woman;          public String getMan() {                         return man;          }          public void setMan(String man) {             this.man = man;          }          public String getWoman() {             return woman;          }          public void setWoman(String woman) {             this.woman = woman;          }          public String fromJavaBean(){             return "我来自JavaBean中的方法";          }          public String fromJavaBeanParam(String name){             return name+",我是来自JavaBean中的方法";          }               }  
      现在开始用<s:bean  />标签访问JavaBean,这个标签有两个属性:

       Name:这是一个必填的属性,用于指定需要实例化的Java类;

       Var:这是一个可选项。如果指定了这个属性,那么JavaBean就会被放入StatckContext,并放入requestScope中。可以用id代替,但是不推荐。

       有两种表达方法。一种是把属性值放入值栈中,另一种是放在ActionContext中。我们先看看放入值栈的这种情况,请看我的jsp页面代码:

    <%@ page language="java"contentType="text/html; charset=UTF-8"          pageEncoding="UTF-8"%>      <%@ taglib prefix="s" uri="/struts-tags"%>         <!DOCTYPE html PUBLIC "-//W3C//DTDHTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">      <html>      <head>      <meta http-equiv="Content-Type"content="text/html; charset=UTF-8">      <title>存入值栈</title>      </head>      <body>          <s:bean name="com.iman.model.Person" var="person" >             <s:param name="man"value="'男人'"  />              我的性别是:    <s:property value="man"/><br>          </s:bean>          </body>      </html>  
      由于放入值栈了,所以可以用<s:property  />直接访问,本人在此提醒你的是,注意在设置<s:param  />标签的value属性时,务必要将你的赋值用单引号括起来,否则取不到值的,我找了这个错还真找了半天。

       好了,打开服务器并部署完项目直接运行这个jsp页面,结果如下图所示:


下面我们来看看将值放入ActionContext中的方式,jsp页面如下所示:

<%@ page language="java"contentType="text/html; charset=UTF-8"      pageEncoding="UTF-8"%>  <%@ taglib prefix="s" uri="/struts-tags"%>     <!DOCTYPE html PUBLIC "-//W3C//DTDHTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  <html>  <head>  <meta http-equiv="Content-Type"content="text/html; charset=UTF-8">  <title>存入ActionContext</title>  </head>  <body>      <s:bean name="com.iman.model.Person" var="person" >         <s:param name="woman"value="'女人'"></s:param>      </s:bean>         我的性别是:<s:property value="#person.woman"/>  </body>  </html> 

也直接运行这个页面,页面如下所示:


可以看出,得到的都是一样的结果,只是在 ActionConetxt中时需要以“#objectName”的形式取值。

下面我们来看看直接调用JavaBean中的方法这种情况,jsp页面如下所示:

    <%@ page language="java"contentType="text/html; charset=UTF-8"          pageEncoding="UTF-8"%>      <%@ taglib prefix="s" uri="/struts-tags"%>          <!DOCTYPE html PUBLIC "-//W3C//DTDHTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">      <html>      <head>      <meta http-equiv="Content-Type"content="text/html; charset=UTF-8">      <title>调用JavaBean中的方法</title>      </head>      <body>             <s:bean name="com.iman.model.Person"var="person"></s:bean>             <s:property value="#person.fromJavaBean()"/>      </body>      </html>  

运行页面如下所示:


我们来看看给JavaBean中的方法传入参数的情况,jsp页面如下所示:

    <%@ page language="java"contentType="text/html; charset=UTF-8"          pageEncoding="UTF-8"%>      <%@ taglib prefix="s" uri="/struts-tags"%>            <!DOCTYPE html PUBLIC "-//W3C//DTDHTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">      <html>      <head>      <meta http-equiv="Content-Type"content="text/html; charset=UTF-8">      <title>传入参数</title>      </head>      <body>          <s:bean name="com.iman.model.Person" var="person"></s:bean>          <s:property value="#person.fromJavaBeanParam('游其是你')"/>      </body>      </html>  

运行结果如下图所示:


                                                                                                                                                                                                            本文转自:http://blog.csdn.net/youqishini/article/details/7068472




原创粉丝点击