Quote:hanml(find lost) [ http://community.csdn.net/Expert/topic/3755/3755067.xml?temp=.4025537 看看这个帖子,或许有点帮助 ]那假如现在是用第三种,新建了一个跟ActionForm一模一样的ModelBean,但还有以下问题:我要查询这个 TestFormBean 的一个列表集合 List 的时候,因为查询方法都在 TestModelBean.list() 里面完成并返回一个 List 的对象,那么这个 List 里面的对象又如何从 TestModelBean 转换成 TestFormBean ???用以下方法???List list = TestModelBean.list(); ArrayList newList = new ArrayList(); for(int i=0; i<list.size(); i++){ TestFormBean f = new TestFormBean(); f.setString1(((TestModelBean)list.get(i)).getString1()); .... .... newList.add(f); }然后 setAttribute 的是 set newList 而不是 set List ??????是这样做的吗?
[
按你说的那样,是因为你还没理解MVC的含义!
]现在对 MVC的含义 的确还不是很明确,但我不明的是,TestModelBean 要与数据库操作的话,也需要从外面把数据放进来才行啊,这样在 TestModelBean 里面不是同样要具有 TestFormBean 的全部属性,然后它才根据这些数据再进行数据库操作吗????
[
其实思路应该是这样的在ACTION里面给TestModelBean中的各各属性附值,然后调用TestModelBean中的方法(比如数据库入库操作),然后取回结果.在VIEW层显示.
]在 Action 中给 TestModelBean 赋值(从 TestModelBean的 get方法)这没什么问题,如果 TestModelBean 有 20 个方法,那就要set 20 次?!按照 MVC ,(1)但这个时候可以把 TestFormBean 直接传到 TestModelBean 来吗?这样就不要 set TestModelBean 的属性了?(2)同时,查询的时候,可以在 TestModelBean 里面用 TestFormBean 吗?
查询的时候不需要用的,你在TestModelBean里用数据库预编语句就可以了!
public ActionForward execute(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Exception {
TestFormBean testFormBean = (TestFormBean)form;
/** ============== 第一种方法 ================= **/
/*调用 TestModelBean 并设置值*/
TestModelean testModelean = new TestModelean();
testModelean.setString1(testFormBean.getString1());
testModelean.setString2(testFormBean.getString2());
testModelean.setString3(testFormBean.getString3());
/*20 个 set方法*/
...
/** ============== 第二种方法 ================= **/
TestModelBean testModelean = new TestModelean();
testModelean.setTestModelFormBean(testFormBean);
TestModelBean.doInsert(); } }究竟平常上面用哪一种?
看看这个帖子,或许有点帮助
[
http://community.csdn.net/Expert/topic/3755/3755067.xml?temp=.4025537
看看这个帖子,或许有点帮助
]那假如现在是用第三种,新建了一个跟ActionForm一模一样的ModelBean,但还有以下问题:我要查询这个 TestFormBean 的一个列表集合 List 的时候,因为查询方法都在 TestModelBean.list() 里面完成并返回一个 List 的对象,那么这个 List 里面的对象又如何从 TestModelBean 转换成 TestFormBean ???用以下方法???List list = TestModelBean.list();
ArrayList newList = new ArrayList();
for(int i=0; i<list.size(); i++){
TestFormBean f = new TestFormBean();
f.setString1(((TestModelBean)list.get(i)).getString1());
....
....
newList.add(f);
}然后 setAttribute 的是 set newList 而不是 set List ??????是这样做的吗?
第二种方法, testModelean.setTestModelFormBean(testFormBean);
在模型层将控制层的组件做为参数,违反了mvc的思想,
panzhiwei(panzhiwei008) 所说的"你可以在TestModelBean写一个带20个参数的构造函数,然后在ACTION里用初始化对象就可以了."
那要在action里面定义变量,将从formbean中数据赋给相应的变量,现用变量初始化对象,那要在 action中定义二十个变量?如果不定义,那就是在初始化函数的参数都是formbean.getXXX(),写二十个也好长啊,觉得还不如第一种方法顺眼些呢,