初学struts有一个困惑,ActionForm类地实例化,然后填充数据的发送给Action处理的过程是由什么来控制的?也就是说JSP页面提交表单之后到Action类执行execute方法之间有什么具体过程?望高手指教!

解决方案 »

  1.   

    ActionServlet来搞的。而ActionServlet又是一个HttpServlet,是由容器搞的,所以本质上还是容器搞的。
    过程:
    Browser提交URL----> Web容器通过web.xml配置的URL类型拦截----->转发给ActionServlet----->根据struts-cfg文件匹配URL中的name属性实例化ActionForm,填充FormBean;再根据path属性找到对应的Action类,将HttpRequet和Response,ActionForm,ActionMapping作为参数传递给Action------->Action动作----->Action返回。
      

  2.   

    struts中大部分方法都是回调,除了Action调用BO层业务代码除外
      

  3.   

    这个是由struts内部封装的,具体是通过struts-config.xml中配置的formbean的类名,通过反射机制新建formbean的实例,然后通过反射取到里面的setXx的方法对各个属性设值,最后把对象给你调的action