struts(培训笔记).pdf
《struts(培训笔记).pdf》由会员分享,可在线阅读,更多相关《struts(培训笔记).pdf(14页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、StrutsMVCStrutsMVCStrutsMVCStrutsMVC框架框架web 应用的分层交互层,表现数据,收集数据,也就是视图层,接受请求,通过处理层完成相应的响应。(V,C)处理层,完成数据的处理,也就是业务层(M)。MVC 设计模式(应用观察者模式的框架模式)M model,模型,操作数据的业务处理层。V view,示图,采集和显示数据,为业务层提供数据,表现业务层输出的数据,只关心数据的类型,不管新数据的来源。C ctrl,控制器,也就是视图层和模型层桥梁,控制数据的流向,接受视图层发出的事件,并重绘视图。MVC 框架的实现模型模型一:JSP+JavaBean,JSP 既充当控
2、制,又充当视图,以页面为核心,JSP 使用 jsp:useBean,他不能够实现不同的页面,显示不同的数据,需要借助于中间类来调用 JavaBean 的方法才能实现。模型二:JSP+Servlet+JavaBean,以控制为核心,JSP 只负责显示和收集数据,sevlet,连接视图和模型,将视图层数据,发送给模型层,JavaBean,分为业务类和数据实体,业务类处理业务数据,数据实体,承载数据,基本上大多数的项目都是使用这种 MVC 的实现模式。StrutsMVC 框架Struts是使用 MVC 的实现模式二来实现的,也就是以控制器为核心。Struts提供了一些组件使用 MVC 开发应用程序:
3、Model:Struts没有提供 model 类。这个商业逻辑必须由 Web 应用程序的开发者以 JavaBean或 EJB的形式提供View:Struts提供了 action form 创建 form bean,用于在 controller 和 view间传输数据。此外,Struts提供了自定义 JSP 标签库,辅助开发者用 JSP 创建交互式的以表单为基础的应用程序,应用程序资源文件保留了一些文本常量和错误消息,可转变为其它语言,可用于 JSP 中。Controller:Struts提供了一个核心的控制器 ActionServlet,通过这个核心的控制器来调用其他用户注册了的自定义的控制器
4、 Action,自定义 Action 需要符合 Struts 的自定义 Action 规范,还需要在 struts-config.xml 的特定配置文件中进行配置,接收 JSP 输入字段形成 Actionform,然后调用一个 Action 控制器。Action 控制器中提供了 model 的逻辑接口。写一个基于 Struts的 web 应用1,创建一个符合标准的 web 应用的结构,也就是一个有 WEB-INF 文件夹的应用文件夹,在应用中需要使用到 Struts的一些 jar 文件,要放到 WEB-INF 的 lib 文件夹下,这些 jar 文件都在 struts的 zip 文件中的/st
5、ruts-1.2.9-bin/lib下还有 struts-1.2.9-bin/contrib/struts-el/lib 下的standard.jar、jstl.jar 和 struts-el.jar。2,在web.xml 中配置 Struts 的核心控制器 ActionServlet,并指明 Struts的配置文件的所在位置 WEB-INF 下,在 struts的文件中有一个样板的 web.xml 文件,使用这个 web.xml 文件来部署应用就可以了,这个样板在 struts 的 zip 文件中的 struts-1.2.9-src.zip 文件中的web/examples/WEB-INF/
6、web.xml 就是样板文件。部署应用看 struts 是否发布成功。actionorg.apache.struts.action.ActionServletconfig/WEB-INF/struts-config.xmlaction*.do3,写 jsp 页面和业务,实体,和自定义控制器类 Action,自定义 Action 是要继承于 Action类例:import org.apache.struts.action.*;import javax.servlet.http.*;public class LoginAction extends Actionpublic ActionForwar
7、dexecute(ActionMapping mapping,ActionForm form,HttpServletRequestrequest,HttpServletResponseresponse)throwsExceptionif(request.getParameter(username).equals(admin)&request.getParameter(passwd).equals(123)returnmapping.findForward(success);returnmapping.findForward(fail);在 struts-config.xml 文件中的配置,解析
8、配置文件中,配置文件的 action 标签就会被映射成ActionMapping 对象。ActionForm 是可以自动将表单中的数据封装成对象,当然,一个自定义 ActionForm 也是要遵守 Struts规范的,也就是要继承于 ActionForm,并在以上的 struts-config.xml 进行配置。ServletController(ActionServlet 和自定义的 Action),配置Ctrler 需要配置 struts-config.xml,通过客户端 form 的 action 来查找调用相应的 action,自定义 action 中的 mapping 对应的是配置文
9、件中的 forward标签,通过 forward 的 path 属性来跳转到相应的路径。基于 struts的 web 应用的开发步骤1,对应用环境进行配置2,创建 web应用的结构,需要将 struts 应用的 jar 文件进行部署。3,在 web服务器部署 struts4,配置 struts-config.xml 文件,配置 Actoin5,写自定义 Action,实体,以及业务类ActionFormActionFormActionFormActionForm的校验的校验ActionForm 的校验是 struts 提供的一项类似于 Javascript 的表单校验的功能。他可以验
10、证用户填写的表单数据的正确性。ActionForm 的校验,如果表单中的数据符不符合规定格式的要求,ActionForm 的 validate()方法会返回一个 ActionError 对象,ActionError 对象中封装了一个或多个应用发现的校验错误,每一个错误有一个 ActionMessage 对象表达,我们可以通过判断这个ActionError 的对象是否为空,如果为空那么表单的数据符合格式要求,不为空就是表单项中就有不符合格式要求的项。struts 标签在使用 struts标签的 JSP 页面中要先加上以下的标签库的引用这个标签可以从指定的资源文件中根
11、据指定的 key 值来取得可以对应的值,但是需要在 struts-config.xml 中进行配置。配置资源,这些资源可以在 ActionMessage中使用,也就是在构造 ActionMessage是指定资源文件中的 key 这样,在发现校验错误时,就可以先在资源文件中指定的 key 的值了。可以使用 struts的、标签都可以显示指定错误的消息。.struts 会自动的判断返回 ActionError 是否为空,如果是空可以自动的转向指定页面,也可以强制不进行校验,虽然可以在 Form中不去覆盖 validate()方法,但是那样是不可取的。要实现上面提得到功能还需要在 stru
12、ts-config 中配置。$error标签只会原样输出在 ActionErrors中 ActionMessage 对应资源文件中对应的值。标签还可以对输出在 ActionError 中 ActionMessage 对应资源文件中对应的值作一些显示效果的修改。标签只 会 取 资源 文 件 中指 定 key 所对应 的 值,使 用bean:message 标签可以实现国际化。struts 的 html 标签struts 的 html 标签的使用类似于 html 标签,但是少有区别,指定类型的方式变成使用不同的标签,这样会绑定 struts,所以旨在需要时使用。Struts预定
13、义的 Action 类注意:在使用继承 Struts预定义的 Action 类,一定不要覆盖 execute方法,否则会导致无法调用自定义 Action 相应方法。DispatchAction 类(org.apache.struts.actions.DispatchAction)DispatchAction 类是 Action 类的子类,他提供了有实现的 execute方法。我们写的自定义 Action 类,可以继承 DispatchAction 类,但不要覆盖 execute方法,可以在自定义类中写反回值和参数表都与 execute方法相同的方法,可以通过在 struts-congfig.x
14、ml中为这个 action 的配置中添加一个参数,来判断调哪一个方法,实际上 DispatchAction 类就是通过反射机制,通过 form中参数调用了自定义 Action 中的方法,当然这些方法的定义要符合规范,使用继承 DispatchAction 类的自定义的 Action 类,也就会共享同一的 Action 路径。注意:使用继承 DispatchAction 类的自定义的 Action,只会匹配一个 action 路径,只能共享一个 ActionForm,如果加上校验,会产生 form 表单的参数不一致的情况,会导致校验无法通过。例:public class MyAction ext
15、ends DispatchActionActionForwardadd(ActionFormform,HttpServletRequestrequest,HttpServletResponseresponse,ActionMapping mapping)throws Exceptionreturnmapping.findForward(sucess)MappingDispatchAction 类(org.apache.struts.actions.MappingDispatchAction)MappingDispatchAction 类是 DispatchAction 的子类,他和Dispat
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- struts 培训 笔记
限制150内