Specifies the name of the property to be accessed on the bean specified by name. This value may be a simple, indexed, or nested property reference expression. If not specified, the bean identified by name is given a new reference identified by id
调试欢乐多
这句话加了没有?
<logic:iterate id="source" name="yourlist" indexId="index" >
<bean:define id="id" name="source" property="id"/>
<bean:define id="name" name="source" property="name"/>
<bean:define id="number" name="source" property="number"/>
<tr>
<td ><%=id%></td>
<td><%=name%></td>
<td ><%=number%></td>
</tr>
</logic:iterate>
4.1.1 Bean复制标记
可定义新bean,可复制现有bean,还可从现有bean复制属性。
<bean:define>标记用来:
 定义新字符串常数
 将现有的bean复制到新定义的bean对象
 复制现有bean的属性来创建新的bean
<bean:define>标记属性:
属性 描述
Id 新定义的bean脚本变量名称,必须设置
Type 定义引入脚本变量的类
Value 为id属性定义的脚本变量分配一个新的对象
Name 目标bean的名称。若value属性没有设置,这个属性就必须设置
property Name属性定义的bean的属性名称,用来定义新的bean
Scope 源bean的作用域。若没有设置,搜索范围是从页作用域到应用程序作用域
toScope 目标bean的作用域。若没有设置,默认值是页作用域
例如:定义一个bean:
<bean:define id=”test” value=”this is a test”/>
源bean在页作用域中被拷贝大哦请求作用域中的另一个bean:
<bean:define id=”targetBean” name=”sourceBean”
scope=”page” toScope=”request”/>
Define标签主要用于:
• 定义新字符串常量
• 把已存在的bean对象复制到新定义的bean对象
• 为了创建新bean,复制已存在的bean对象属性
如下是<bean:define>标签的属性(所有这些属性都是动态的,它们可以在运行时用表达式赋值)。
属性 描述
id 代码段变量的名字,通过它可以访问新定义的bean。这个属性是必需的
type 为引入的代码段变量定义类
value 给由id属性定义的代码段变量指定新对象
name 目标bean的名字,如果没有指定value属性,这个属性是必须的
property 由name属性定义的bean的属性名字,它用于定义新bean。如果没有指定,由name属性定义的bean分配给由id属性指定的代码段变量
scope 源bean的范围。如果没有指定,就在从页面范围到应用程序范围之间查找
toScope 目标bean的范围,如果没有指定,就默认为page范围
下面是一个例子。下面的标签定义了一个叫foo的bean,它是一个值为“This is a new String”的java.lang.String对象:
<bean:define id =”foo” value=” This is a new String”/>在下面的例子中,有一个叫sourceDean的bean,范围为page,它被复制到一个request范围的名叫targetBean的bean中:
<bean:define id=”targetBean”
name=”sourceBean”
scope=”page”
toScope=”request”/>
-----------------------------------
define标签在struts的JSP中非常有用,例如已有的Bean是一个类的列表,现在要取类中的一个成员的列表,就可用define标签定义一个新的bean。