Struts中Beanutils的用法范例

Apache Commons BeanUtils,其官方网站上介绍为“ Easy-to-use wrappers around the Java reflection and introspection APIs.”(易于使用的Java反射和自省API包装器),也就是一个可以为你访问Java Bean的属性带来方便的工具了。Struts中的JSP自定义标签便是配合使用BeanUtils来访问Java Bean的属性的。 

参考:
Apache Commons BeanUtils http://commons.apache.org/beanutils/

在JSP中使用Struts“bean”标签来输出bean属性的范例代码:

<% @ page language = " java "   %>
< jsp:directive .page import ="java.util.*" />
<% @ taglib uri = " http://struts.apache.org/tags-bean "  prefix = " bean "   %>

<% !
public  static class Bean {
    
private   String  id;
    
private   int []  array ;
    
private  List list  =   new  ArrayList();
    
private  Map map  =   new  HashMap();
    
private  Bean nested;    
    
public   int [] getArray() {
        return 
array ;
    }
    
public  void setArray( int []  array ) {
        this.array 
=   array ;
    }
    
public   String  getId() {
        return id;
    }
    
public  void setId( String  id) {
        this.id 
=  id;
    }
    
public  List getList() {
        return list;
    }
    
public  void setList(List list) {
        this.list 
=  list;
    }
    
public  Map getMap() {
        return map;
    }
    
public  void setMap(Map map) {
        this.map 
=  map;
    }
    
public  Bean getNested() {
        return nested;
    }
    
public  void setNested(Bean nested) {
        this.nested 
=  nested;
    }
    
public   String  toString() {
        return 
" this is the Bean with id:  " +  this.id;
    }
}
%>

<%
Bean bean 
=   new  Bean();

bean.setId(
" b001 " );
bean.setArray(
new   int []{ 0 1 2 });
bean.getList().add(
" listItem0 " );
bean.getList().add(
" listItem1 " );
bean.getList().add(
" listItem2 " );
bean.getMap().put(
" key1 " " value1 " );
bean.getMap().put(
" key2 " " value2 " );
bean.getMap().put(
" key3 " " value3 " );
bean.setNested(
new  Bean());
bean.getNested().setId(
" b002 " );

pageContext.setAttribute(
" bean " , bean);
%>

< html >
< body >

< table  border ="1" >
< tr >< th > type </ th >< th > name </ th >< th > property </ th >< th > value </ th ></ tr >
< tr >< td  rowspan ="1" > bean </ td >
    
< td > bean </ td >< td ></ td >< td >< bean:write  name ="bean" /></ td ></ tr >
< tr >< td  rowspan ="5" > property </ td >
    
< td > bean </ td >< td > id </ td >< td >< bean:write  name ="bean"  property ="id" /></ td ></ tr >
< tr >< td > bean </ td >< td > array </ td >< td >< bean:write  name ="bean"  property ="array" /></ td ></ tr >
< tr >< td > bean </ td >< td > list </ td >< td >< bean:write  name ="bean"  property ="list" /></ td ></ tr >
< tr >< td > bean </ td >< td > map </ td >< td >< bean:write  name ="bean"  property ="map" /></ td ></ tr >
< tr >< td > bean </ td >< td > nested </ td >< td >< bean:write  name ="bean"  property ="nested" /></ td ></ tr >
< tr >< td  rowspan ="5" > nested(simple) property </ td >
    
< td > bean </ td >< td > nested.id </ td >< td >< bean:write  name ="bean"  property ="nested.id" /></ td ></ tr >
< tr >< td > bean </ td >< td > nested.array </ td >< td >< bean:write  name ="bean"  property ="nested.array" /></ td ></ tr >
< tr >< td > bean </ td >< td > nested.list </ td >< td >< bean:write  name ="bean"  property ="nested.list" /></ td ></ tr >
< tr >< td > bean </ td >< td > nested.map </ td >< td >< bean:write  name ="bean"  property ="nested.map" /></ td ></ tr >
< tr >< td > bean </ td >< td > nested.nested </ td >< td >< bean:write  name ="bean"  property ="nested.nested" /></ td ></ tr >
< tr >< td  rowspan ="3" > indexed property(array) </ td >
    
< td > bean </ td >< td > array[0] </ td >< td >< bean:write  name ="bean"  property ="array[0]" /></ td ></ tr >
< tr >< td > bean </ td >< td > array[1] </ td >< td >< bean:write  name ="bean"  property ="array[1]" /></ td ></ tr >
< tr >< td > bean </ td >< td > array[2] </ td >< td >< bean:write  name ="bean"  property ="array[2]" /></ td ></ tr >
< tr >< td  rowspan ="3" > indexed property(list) </ td >
    
< td > bean </ td >< td > list[0] </ td >< td >< bean:write  name ="bean"  property ="list[0]" /></ td ></ tr >
< tr >< td > bean </ td >< td > list[1] </ td >< td >< bean:write  name ="bean"  property ="list[1]" /></ td ></ tr >
< tr >< td > bean </ td >< td > list[2] </ td >< td >< bean:write  name ="bean"  property ="list[2]" /></ td ></ tr >
< tr >< td  rowspan ="3" > mapped property(mapped style) </ td >
    
< td > bean </ td >< td > map(key1) </ td >< td >< bean:write  name ="bean"  property ="map(key1)" /></ td ></ tr >
< tr >< td > bean </ td >< td > map(key2) </ td >< td >< bean:write  name ="bean"  property ="map(key2)" /></ td ></ tr >
< tr >< td > bean </ td >< td > map(key3) </ td >< td >< bean:write  name ="bean"  property ="map(key3)" /></ td ></ tr >
< tr >< td  rowspan ="3" > mapped property(nested style) </ td >
    
< td > bean </ td >< td > map.key1 </ td >< td >< bean:write  name ="bean"  property ="map.key1" /></ td ></ tr >
< tr >< td > bean </ td >< td > map.key2 </ td >< td >< bean:write  name ="bean"  property ="map.key2" /></ td ></ tr >
< tr >< td > bean </ td >< td > map.key3 </ td >< td >< bean:write  name ="bean"  property ="map.key3" /></ td ></ tr >
</ table >

</ body >
</ html >

运行结果如下: 

typenamepropertyvalue
beanbean this is the Bean with id: b001
propertybeanidb001
beanarray[I@1421875
beanlist[listItem0, listItem1, listItem2]
beanmap{key1=value1, key3=value3, key2=value2}
beannestedthis is the Bean with id: b002
nested(simple) propertybeannested.idb002
beannested.array 
beannested.list[]
beannested.map{}
beannested.nested 
indexed property(array)beanarray[0]0
beanarray[1]1
beanarray[2]2
indexed property(list)beanlist[0]listItem0
beanlist[1]listItem1
beanlist[2]listItem2
mapped property(mapped style)beanmap(key1)value1
beanmap(key2)value2
beanmap(key3)value3
mapped property(nested style)beanmap.key1value1
beanmap.key2value2
beanmap.key3value3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值