您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > struts(培训笔记)
StrutsMVCStrutsMVCStrutsMVCStrutsMVC框架web应用的分层交互层,表现数据,收集数据,也就是视图层,接受请求,通过处理层完成相应的响应。(V,C)处理层,完成数据的处理,也就是业务层(M)。MVC设计模式(应用观察者模式的框架模式)Mmodel,模型,操作数据的业务处理层。Vview,示图,采集和显示数据,为业务层提供数据,表现业务层输出的数据,只关心数据的类型,不管新数据的来源。Cctrl,控制器,也就是视图层和模型层桥梁,控制数据的流向,接受视图层发出的事件,并重绘视图。MVC框架的实现模型模型一:JSP+JavaBean,JSP既充当控制,又充当视图,以页面为核心,JSP使用jsp:useBean,他不能够实现不同的页面,显示不同的数据,需要借助于中间类来调用JavaBean的方法才能实现。模型二:JSP+Servlet+JavaBean,以控制为核心,JSP只负责显示和收集数据,sevlet,连接视图和模型,将视图层数据,发送给模型层,JavaBean,分为业务类和数据实体,业务类处理业务数据,数据实体,承载数据,基本上大多数的项目都是使用这种MVC的实现模式。StrutsMVC框架Struts是使用MVC的实现模式二来实现的,也就是以控制器为核心。Struts提供了一些组件使用MVC开发应用程序:Model:Struts没有提供model类。这个商业逻辑必须由Web应用程序的开发者以JavaBean或EJB的形式提供View:Struts提供了actionform创建formbean,用于在controller和view间传输数据。此外,Struts提供了自定义JSP标签库,辅助开发者用JSP创建交互式的以表单为基础的应用程序,应用程序资源文件保留了一些文本常量和错误消息,可转变为其它语言,可用于JSP中。Controller:Struts提供了一个核心的控制器ActionServlet,通过这个核心的控制器来调用其他用户注册了的自定义的控制器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文件中的/struts-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/web.xml就是样板文件。部署应用看struts是否发布成功。servletservlet-nameaction/servlet-nameservlet-classorg.apache.struts.action.ActionServlet/servlet-classinit-paramparam-nameconfig/param-nameparam-value/WEB-INF/struts-config.xml/param-value/init-param/servletservlet-mappingservlet-nameaction/servlet-nameurl-pattern*.do/url-pattern/servlet-mapping3,写jsp页面和业务,实体,和自定义控制器类Action,自定义Action是要继承于Action类例:importorg.apache.struts.action.*;importjavax.servlet.http.*;publicclassLoginActionextendsAction{publicActionForwardexecute(ActionMappingmapping,ActionFormform,HttpServletRequestrequest,HttpServletResponseresponse)throwsException{if(request.getParameter(username).equals(admin)&&request.getParameter(passwd).equals(123)){returnmapping.findForward(success);}returnmapping.findForward(fail);}}在struts-config.xml文件中的配置,解析配置文件中,配置文件的action标签就会被映射成ActionMapping对象。struts-configform-beansform-beanname=xxxtype=ActionForm的类全名form-beanname=LoginFormtype=basic.LoginForm/form-beansaction-mappingsactionpath=/basic/logintype=alan.struts.basic.LoginActionname=xxxscope=request|sessio(默认值)forwardname=successpath=/basic/success.jsp/forwardname=failpath=/basic/fail.jspredirect=false(重定向,默认false)//actionactionpath=action的路径,在form的action中写的那个路径type=action的类全名forwardname=在自定义的Action中使用的findForward方法的参数path=跳转页面的路径/forwardname=xxxpath=xxx/xxx.jsp//action/action-mappings/struts-configActionForm是可以自动将表单中的数据封装成对象,当然,一个自定义ActionForm也是要遵守Struts规范的,也就是要继承于ActionForm,并在以上的struts-config.xml进行配置。ServletController(ActionServlet和自定义的Action),配置Ctrler需要配置struts-config.xml,通过客户端form的action来查找调用相应的action,自定义action中的mapping对应的是配置文件中的forward标签,通过forward的path属性来跳转到相应的路径。基于struts的web应用的开发步骤1,对应用环境进行配置2,创建web应用的结构,需要将struts应用的jar文件进行部署。3,在web服务器部署struts4,配置struts-config.xml文件,配置Actoin5,写自定义Action,实体,以及业务类ActionFormActionFormActionFormActionForm的校验struts-configform-beansform-beanname=xxxtype=ActionForm的类全名form-beanname=LoginFormtype=basic.LoginForm!--配置ActionForm类--/form-beansaction-mappingsactionpath=/basic/logintype=alan.struts.basic.LoginActionname=xxxscope=request|sessio(默认值)Form的保存空间forwardname=successpath=/basic/success.jsp/forwardname=failpath=/basic/fail.jspredirect=false(重定向,默认false)//actionaction-mappings/struts-configActionForm的校验是struts提供的一项类似于Javascript的表单校验的功能。他可以验证用户填写的表单数据的正确性。ActionForm的校验,如果表单中的数据符不符合规定格式的要求,ActionForm的validate()方法会返回一个ActionError对象,ActionError对象中封装了一个或多个应用发现的校验错误,每一个错误有一个ActionMessage对象表达,我们可以通过判断这个ActionError的对象是否为空,如果为空那么表单的数据符合格式要求,不为空就是表单项中就有不符合格式要求的项。struts标签在使用struts标签的JSP页面中要先加上以下的标签库的引用%@tagliburi==html%%@tagliburi==bean%bean:messagekey=errors.username.required这个标签可以从指定的资源文件中根据指定的key值来取得可以对应的值,但是需要在struts-config.xml中进行配置。配置资源,这些资源可以在ActionMessage中使用,也就是在构造ActionMessage是指定资源文件中的key这样,在发现校验错误时,就可以先在资源文件中指定的key的值了。可以使用struts的html:errorshtml:message、bean:message标签都可以显示指定错误的消息。struts-config.....message-resourcesparameter=alan.struts.message.MessageResource/!--使用message标签时配置资源文件的位置--/struts-configstruts会自动的判断返回ActionError是否为空,如果是空可以自动的转向指定页面,也可以强制不进行校验,虽然可以在Form中不去覆盖validate()方法,但是那样是不可取的。要实现上面提得到功能还需要在struts-config中配置。actionpath=/basic-validate/logintype=alan.struts.basic.LoginActionname=loginValidateFormscope=requestvalidate=trueinput=/basic-validate/login.jsp!--scope可以指定Form的存放空间,默认为sessoin--!--action标签中配置validate=false可以不进行校验,input是指定校验出错跳转的页面--forwardname=successpath=/basic-validate/success.jsp/forwardname=failpath=/basic-validate/fail.jsp/
本文标题:struts(培训笔记)
链接地址:https://www.777doc.com/doc-960550 .html