如何在Struts 1.2中使用<bean:write>
标记。
在name
属性中,必须使用什么值? bean名称是您的属性名称吗?
答案 0 :(得分:30)
<bean:write>
的Javadoc:
指定访问其属性的bean的属性名称 检索 property 指定的值(如果指定)。如果财产 如果未指定,则将呈现此bean本身的值。
实质上,如果你有一个JavaBean(带有getter和setter),
Person person = new Person;
request.setAttribute("person", person);
通过设置<bean:write name="person" property="age" />
,您告诉Struts首先从person
范围中找到PageContext
对象优先。如果找不到,则request
,然后是session
,然后是application
范围。
property="age"
属性(来自<bean:write />
标记)然后将从getAge()
对象调用getter方法Person
(无论是否有名为{{的实例变量) 1}}在bean上。)
希望这有帮助。
答案 1 :(得分:3)
为了显示person.getAge()
,您将使用
<bean:write name="person" property="age" />
答案 2 :(得分:0)
“name”属性应指定bean的名称。例如,如果您尝试从ActionForm输出属性,则应将name属性设置为ActionForm的名称,并将property属性设置为要写入的ActionForm的属性。所以在这种情况下你可能会这样做:
<bean:write name="productInfo" property="summary" />
如果例如使用标记声明非ActionForm bean,则name属性将设置为该已定义bean的名称:
<bean:define id="displayText" value="Text to Display" />
<bean:write name="displayText" />
请注意,在这种情况下缺少property属性,在这种情况下将显示bean本身的tostring值。