请下载并运行它。我认为值得一试,虽然它会有点烦人。
在action类的execute方法中,如果你通过返回bean的方法来设置bean,Modeldriven在JSP中<s:property "someField" />
就不能工作(不能工作,所以你必须像这样输入bean实例名; <s:property "myBean.someField" />
)。
但是如果你设置了 bean 的字段值,Modeldriven 就可以工作了。
我知道你可能不相信我,并认为我做错了什么。但这不是真的!去尝试一下..
public class DefaultClass extends ActionSupport implements ModelDriven<TestBean> {
TestBean test = new TestBean();
DAO db = DAO.getInstance();
public String access() throws Exception {
//Beans setter doesn't work!
setTest( db.getTest() );
return SUCCESS;
}
public String access2() throws Exception {
//Field setter works!
test.setA(db.getA());
test.setB(db.getB());
return SUCCESS;
}
我不知道我刚刚发现了什么。所以我问这个问题。作为我自己的答案,如果我将 bean 推送到 valuestack Modeldriven 将起作用。
我想知道为什么没有关于这个的问题。我认为这是一个严重的问题。