我也是刚刚学习struts不长时间,给我感觉action 是从actionForm中取得的数据(post方法),当jsp提交到action.do后,action会自动寻找actionForm.而actionForm里面的值是自动加载的。自己的看法,如果不正确,请指正。

解决方案 »

  1.   

    struts往request里面放值是自动完成的。提交的时候相应的form里面的字段和actionform里面的一一对应,request里面包括所有你提交的字段信息。所以我觉得应该是保存在Request或者session里,这个可以通过struts-config来设置。而不是上下文里面。自己的观点,错了么怪!
      

  2.   

    "ActionServlet生成一个ActionForm之后,是不是用reqeust.setAttribute方法将ActionForm保存在Request或者session里,还是保存在servlet上下文中?"
    可以通过配置放在request/session里"还有,struts的tag是从ActionForm中取得数据,还是从Request中取得数据?"
    struts的tag,还是tag,它没有办法知道到哪里去数据,需要通过别的方法告诉他:1用tag的参数,2用标准的配置文件struts-config.xml。"ActionForm和Request是Request包含ActionForm的关系还是Request,ActionForm并列同时存在,相互之间不干扰的关系?"
    ActionForm依然是javabean,可以放在request/session里
      

  3.   

    在struts1.1中,采用了RequestProcessor分离了原先ActionServlet所作的很多工作。比如创建ActionForm,进行校验,调用相应的Action等。        ActionForm form = processActionForm(request, response, mapping);这就是RequestProcessor中创建ActionForm的语句调用。可见当ActionServlet得到请求时就会按照request(HttpServletRequest),response(HttpServletResponse),和mapping(ActionMapping)来建立一个ActionForm。当ActionForm建立好后,就会被放到request或session中去:if ("request".equals(mapping.getScope())) {
                request.setAttribute(mapping.getAttribute(), instance);
            } else {
                HttpSession session = request.getSession();
                session.setAttribute(mapping.getAttribute(), instance);
            }
      

  4.   

    因此是Request包含ActionForm的关系。我觉得request真是强悍,就像一个垃圾桶,什么东西都能往里扔。赫赫。
      

  5.   

    还是从request里获得的,这些都是放在request内的。