Struts2 - ModelDriven接口的奇怪行为

时间:2014-05-15 06:32:22

标签: java jsp struts2 model-driven

我的目标是在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帮助

0 个答案:

没有答案