我的目标是在Struts2 Action中获取TestBean类的对象,并在jsp页面(视图层)显示其值
我将ModelDriven接口实现到我的action类中,如下所示
public class TestAction extends ActionSupport implements ModelDriven<TestBean>{
private TestBean testBeanObject;
@Override
public TestBean getModel() {
return testBeanObject;
}
@Override
public String execute(){
testBeanObject = getting object of TestBean Class from business layer (It is having all the value whatever I want)
return ActionSupport.SUCCESS;
}
}
我的TestBean类代码
@Entity
@Table(name="test_bean") public class TestBean implements Serializable { private static final long serialVersionUID = 1L; @Id @Column(name="test_bean_id") private int testBeanId; private String firstProperty; private String secondProperty; @OneToMany(mappedBy="testBeanPaper", fetch = FetchType.LAZY) private List<PapersText> papersTexts; public TestBean() { } public String getFirstProperty() { return this.firstProperty; } public void setFirstProperty(String firstProperty) { this.firstProperty = firstProperty; } public String getSecondProperty() { return this.secondProperty; } public void setSecondProperty(String secondProperty) { this.secondProperty = secondProperty; } public List<PapersText> getPapersTexts() { return this.papersTexts; } public void setPapersTexts(List<PapersText> papersTexts) { this.papersTexts = papersTexts; }
}
我的jsp页面代码是
<s:textarea id="textarea1" class="longinput" name="firstProperty" value="%{firstProperty}"></s:textarea>
<s:textarea id="textarea2" class="longinput" name="secondProperty" value="%{secondProperty}"></s:textarea>
在View Layer(Jsp页面)中,我的文本字段与TestBean Class的属性同名。
现在问题是
案例1。
如果我从另一个类获取TestBean类对象(如上所示),则值不会反映在jsp页面上。甚至TestBean对象也完全初始化
案例2。
在action类中,如果我手动设置TestBean类的属性值,如
testBeanObject.setFirstProperty("FirstProperty");
testBeanObject.setSecondProperty("SecondProperty");
在视图层完美反映。
我调试了我的代码。它显示对象已初始化并且在两种情况下都具有正确的值。那么为什么它没有反映在案例1 中。
Plz帮助