struts1标签bean:define使用?bean:define /?属性 描述 ? ? ? ??? id 代码段变量的名字,通过它可以访问新
struts1标签bean:define使用
?
<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"/>