Struts2学习笔记(6)-----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页面,结果如下图所示:


Struts2学习笔记(6)-----Struts2的bean标签用法_第1张图片


      下面我们来看看将值放入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>


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


Struts2学习笔记(6)-----Struts2的bean标签用法_第2张图片


        可以看出,得到的都是一样的结果,只是在 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>


        运行页面如下所示:


Struts2学习笔记(6)-----Struts2的bean标签用法_第3张图片


       我们来看看给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>


       运行结果如下所示:


Struts2学习笔记(6)-----Struts2的bean标签用法_第4张图片


       可以看出,<s:bean  />这个标签很强大,JavaBean中的方法,属性直接都可以调用。经过这么一学习,又发现了一个新大陆,你呢?嘿嘿~


      这是本人学习的结果,欢迎转载,欢迎交流,但转载务必给出本文章的链接地址:http://blog.csdn.net/youqishini/article/details/7068472,谢谢~ 









你可能感兴趣的:(html,jsp,bean,String,struts,getter)