<bean:define />
属性 描述
id 代码段变量的名字,通过它可以访问新定义的bean。这个属性是必需的
type 为引入的代码段变量定义类
value 给由id属性定义的代码段变量指定新对象
name 目标bean的名字,如果没有指定value属性,这个属性是必须的
property 由name属性定义的bean的属性名字,它用于定义新bean。如果没有指定,由name属性定义的bean分配给由id属性指定的代码段变量
scope 源bean的范围。如果没有指定,就在从页面范围到应用程序范围之间查找
toScope 目标bean的范围,如果没有指定,就默认为page范围
bean:define:有三个用途。
一是定义新字符串常量:
<bean:define id="foo" value="This is a new String"/>
<bean:define id="bar" value='<%= "Hello, " + user.getName() %>'/>
<bean:define id="last" scope="session" value='<%= request.getRequestURI() %>'/>
二是复制一个现有的bean给新的bean:
<bean:define id="foo" name="bar"/> // 将名字为bar的JavaBean赋值给foo
<bean:define id="baz" name="bop" type="com.mycompany.MyClass"/> // 额外定义脚本变量的类型,默认为Object
三是复制一个现有的bean的属性给新的bean:
<bean:define id="bop" name="user" property="role[3].name"/>
<bean:define id="foo" name="bar" property="baz" scope="request" toScope="session"/>
//toScope属性指新bean的scope,默认为page
上段代码的意思是把名为bar的bean的baz属性赋值给foo,foo的类型为String(默认)。
例:
我有一个Bean对象User对象,这个里面保存了admin管理员的个人信息,姓名(name),性别(sex)、年龄(age)那么怎么用呢。
在action里面你可以把User对象传过来
request.setAttribute("user",User);
在页面
<bean:define id="admin" name="user"./>
然后就可以和bean:write搭配使用
<bean:write name="admin" property="name"/>
<bean:write name="admin" property="sex"/>
<bean:write name="admin" property="age"/>
我有一个Bean对象User对象,这个里面保存了admin管理员的个人信息,姓名(name),性别(sex)、年龄(age)那么怎么用呢。
在action里面你可以把User对象传过来
request.setAttribute("user",User);
在页面
<bean:define id="admin" name="user"./>
然后就可以和bean:write搭配使用
<bean:write name="admin" property="name"/>
<bean:write name="admin" property="sex"/>
<bean:write name="admin" property="age"/>