【发布时间】:2010-08-17 18:43:29
【问题描述】:
请下载this 并运行它。 我认为值得一试,虽然会有点烦人。
在action类的execute方法中,如果你通过返回bean的方法来设置bean,Modeldriven在JSP中不起作用(<s:property "someField" />不会起作用,所以你必须像这样键入bean实例名称;@987654324 @)。
但是如果你设置了 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;
}
我不知道我刚刚发现了什么。所以我问this question。作为我自己的回答,如果我将 bean 推送到 valuestack,Modeldriven 将起作用。
我想知道为什么对此毫无疑问。我认为这是一个严重的问题。
【问题讨论】:
-
我不确定我是否明白你在问什么。您提供的名称似乎与您提供的代码不匹配。你是说不能访问
<s:property value="a"/>,比如你要写<s:property value="test.a/>? -
没错。请下载我的 WAR 文件并运行它。你会明白我的意思
标签: struts2 model-driven