小弟刚接触struts 很多都不懂,所以来这里问问大侠们
1.actionForm有什么用?我看到书上说用来封装页面输入的一个类,但是我不知道怎么用?有了这个还要写javaBean吗?如果要写javaBean 的话,那岂不是这个类要和不要没什么区别?-----------------------------
2.在Action中,能不能这样写 public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
LoginForm loginForm = (LoginForm) form;
String command=loginForm.getCommand();//隐藏表单域里面给的一个值
if("login".equals(command)){
return doLogin(mapping,form,request,response);
}else if("add".equals(command)){
return doAdd(mapping,form,request,response);
}else{
return null;
}
} private ActionForward doAdd(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
LoginForm loginForm = (LoginForm) form;
String name=loginForm.getName();
String pass=loginForm.getPass();
AccountModel amodel=new AccountModel();
amodel.setName(name);
amodel.setPass(pass);
if(Account.addAcount(amodel)>0){
return mapping.findForward("suc");
}else{
return mapping.findForward("fail");
}
}--------------
如果这样写了,那不是和servlet没什么区别吗? 

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【MnziIT】截止到2008-07-26 19:36:50的历史汇总数据(不包括此帖):
    发帖的总数量:7                        发帖的总分数:120                      每贴平均分数:17                       
    回帖的总数量:9                        得分贴总数量:0                        回帖的得分率:0%                       
    结贴的总数量:7                        结贴的总分数:120                      
    无满意结贴数:0                        无满意结贴分:0                        
    未结的帖子数:0                        未结的总分数:0                        
    结贴的百分比:100.00%               结分的百分比:100.00%                  
    无满意结贴率:0.00  %               无满意结分率:0.00  %                  
    敬礼!
      

  2.   

    我struts1没怎么了解    不过你的问题可以勉强解答下   呵呵
    首先   ActionForm是一个伪域对象    为什么说伟呢   是因为Struts1  没有强大的类型转换功能   框架只是简单的通过反射机制把
    请求中传过来的值设置给ActcionForm  所以里面的属性都是String类型的   如果要存到数据库  还要自己进行类型转换
    我对struts不甚了解  错了大家指出 啊
    ActionForm体统了数据校验功能   框架可以自动校验请求中的数据   
    所以和自己写javabean还是有区别的    如果你是自己写javabean   则要在execute方法里用request对象取出数据,然后自己填充javabean,
    并且   数据验证也要自己做,这个适用框架的初中相悖,我们使用框架,就是因为框架在设计的时候,已经考虑了很多方面的问题,比如
    安全性,健壮性,耦合之类的,并且很多地方,框架提供的都是大家认可的最佳实践,所以,尽量别做重复造轮子的事情,重用嘛楼主的代码中,自己在execute中做了动作转换,实现多动作功能,呵呵,struts框架中提供了DispatchAction类来实现多动作了
    继承它就好了。至于最后楼主说和servlet没什么区别,没弄懂什么意思
      

  3.   

    谢谢2楼的指点,模模糊糊的懂了点
     最后那个说和servlet的的意思是:以前用servlet做项目的时候也这么写的 只不过它取值是用request 有谁能说的清楚点吗?能把我上面的代码简化下吗
      

  4.   

    推荐你看下电子工业出版社的自己动手写struts-构建基于mvc的web开发框架    书中介绍从最简单的servlet开始   逐步构建一个可用的web框架
    应该对你很有帮助
      

  5.   

    用ActionForm可以给开发者在处理HTML表单时带来极大的帮助,它简化了代码的编写,并提供了自动的数据验证。但是,ActionForm也存在几个非常明显的缺点。
     首先,如果ActionForm对应的HTML表单添加或删除一些属性,ActionForm类就可能需要修改并重新编译;
     其次,如果HTML表单是动态的,那么ActionForm更是无能为力了;
     另外,ActionForm增加了项目中类的绝对数量!
     于是从Struts1.1起,就引入了动态ActionForm(DyanActionForm)概念。动态ActionForm使得用户无须为应用程序的每一个HTML表单创建具体的ActionForm类。Struts框架包中的DyanActionForm类及其子类实现了动态ActionForm.
       DyanActionForm类扩展了 ActionForm类。用户可以直接使用DyanActionForm
       类,或者扩展该类以覆盖其validate和reset方法!