Struts2的bean标签用法

      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




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值