使用<s:property> </s:property>访问Javabean属性

时间:2011-06-17 12:13:12

标签: jsp struts2

我有一个JSP,我想用我的Action类填充一些字段。 在我的Action课程中,我有一个PersonDTO对象。 这是一些示例代码,仅用于获取设计图片

int id = 4;
Person result = findMyRowFromDb(id);    
PersonDTO personDTO = new PersonDTO(result);
return "fillForm"

所以在我的JSP中我想从我的对象中获取值。 我写了像

这样的东西
<input type="text" name="PersonName" id="PersonName"
    value='<s:property value="personDTO.name"/>'/>

name是我的PersonDTO对象的字段。 但没有显示任何内容。 任何人都可以帮助我吗?

2 个答案:

答案 0 :(得分:1)

是的,正如doctrey所提到的,要显示<s:property value="personDTO.name"/>值,personDTO必须是您的操作类的实例变量,并且PersonDTO类中应该有一个getter方法name属性。如果是这样,你会看到你的结果。

此外,您不必在此使用<s:property>,您可以使用<s:textfield>标记,如下所示,

<s:textfield id="PersonName" name="personDTO.name"/>

答案 1 :(得分:0)

正如Steven和nmc所说,您想要在页面上访问的每个变量都需要在您的情况下使用getPersonDTO()之类的getter方法公开它。
但假设您的代码在execute方法中,personDTO是一个局部变量,并且不能由getter返回。首先,您必须将其声明为实例变量,然后提供getter方法。