知道Struts的运用原理和步骤,但是理解得不透彻 ,但是没法用语言进行组织,请大家多帮忙
解决方案 »
- HttpsURLConnection 实现SOAP产生错误
- J2EE下载的项目问题
- MyEclipse5.1+Tomcat6配置和安装的新手问题
- Spring里面的Bean工厂与上下文有什么区别?怎么理解?
- 关于struts-json-plugin的一点一惑,求高人指点
- 在jboss中配置数据源主要要改那几个配置文件?
- frhwxx(笑对^_^人生) ()请进来领分!
- 请问哪位高手知道:如何在iplanet的角色中增入成员呢,要在java代码中实现,而非在consloe中。
- socket 问题
- 使用jacob操作word文档时出现弹窗,导致程序卡死
- 【紧急!!!】关于润乾报表处理
- OSGi是什么到底好在哪里?散分
2. 复制 struts2.jar文件到lib
3. 在web.xml配置StrutsPrepareAndExecuteFilter(在web.xml文件添加如下)
4. 写action包中Action类,在Action类中写界面提交的属性,并生成set/get方法
写public String execute() throws Exception;
5. 在src下创建struts.xml文件
6. 保存变量到作用域
7. 一个action处理多个请求
两者原理和机制完全不同,struts2更像是webwork
web加载并初始化actionservlet,actionservlet从Struts-config.xml配置文件中读取信息,把它们放到各种配置对象中,当ActionServlet接到请求时,struts流程开始,(1)检索和用户匹配的ActionMapping实例,如果不存在则返回请求路径无效(404错误),如果有匹配的ActionMapping实例;(2),但是ActionForm实例不存在,那么就创建一个ActionForm对象,并把请求传过来的信息保存到ActionForm对象中;(3)根据配置信息决定是否进行表单验证,如果需要验证,就调用Action的validate()方法;(4)如果ActionForm的validate()方法返回null或返回一个不包含ActionMessage的ActuibErrors对象,就表示表单验证成功;(5)ActionServlet根据ActionMapping所包含的映射信息决定将请求转发给哪个Action,如果相应的Action实例不存在,就先创建这个实例,然后调用Action的execute()方法;(6)Action的execute()方法返回一个ActionForward对象,ActionServlet在把客户请求转发给ActionForward对象指向的JSP组件;(7)ActionForward对象指向JSP组件生成动态网页,返回给客户;(8)struts流程结束
在接受到请求后ActionServlet的doGet/doPost调用RequestProcessor.process方法,这个方法是整个struts1d的核心,actionform从request中读取参数(populate),actionform的validate,查找对应的action, action.execute,最后的forward处理,以及异常处理等都在其中Struts2机制大变,基于拦截器可以干很多事情,抛弃了form,直接进action,页面上标签由于webwork也大为不同