第三十二章:配置Struts组件ITJob就业培训654第三十二章:配置Struts组件学习目标Web应用部署描述符Struts配置文件应用资源文件Ant的构建文件第三十二章:配置Struts组件ITJob就业培训655三个XML文件和一个属性文件web.xml:JSP容器使用这个文件来载入和配这是JavaServlet要求的web应用部署描述符。Servlet的应用。struts-config.xml:Struts框架的部署描述符。它用来载入和配置Struts框架使用的各种组件。Build.xml:JakartaAnt构建工具使用它来编译和部署你的应用。使用Ant不是必需的,但它在Struts人员中很流行。Application.properties:该文件为你的Struts应用提供资源。像build.xml文件一样,它不是严格要求的,但是大Struts应用都要用到。Web应用部署描述符web.xmlStruts框架的核心是ActionServlet,Struts把它当作是一个控制器。将它看成是一个黑盒。他们总是在web应用部署描述符(web.xml)中配置它,然后让它自己工作。Struts框架有两个组件需要从应用部署描述符中配置:ActionServlet和标签库(可选),例如注册应用的web.xml!--前两行将文件标识为一个web应用部署描述符--?xmlversion=1.0encoding=ISO-8859-1?!DOCTYPEweb-appPUBLIC-//SunMicrosystems,Inc.//DTDWebApplication2.2//EN!--配置ActionServlet—这一段告诉容器装入action名称下的ActionServlet--servletservlet-nameaction/servlet-nameservlet-classorg.apache.struts.action.ActionServlet/servlet-classinit-paramparam-nameapplication/param-nameparam-valueapplication/param-value/init-paraminit-paramparam-nameconfig/param-nameparam-value/WEB-INF/conf/struts-config.xml/param-value/init-paraminit-paramparam-namedebug/param-nameparam-value2/param-value/init-paraminit-paramparam-namedetail/param-nameparam-value2/param-value/init-param第三十二章:配置Struts组件ITJob就业培训656load-on-startup2/load-on-startup/servlet!--标识Struts请求—这一段告诉容器将匹配*.do格式的文件请求转发到actionservlet--servlet-mappingservlet-nameaction/servlet-nameurl-pattern*.do/url-pattern/servlet-mapping!--创建welcome文件--welcome-file-listwelcome-fileindex.jsp/welcome-file/welcome-file-list!--配置标签库—这里我们配置应用中使用的标签库。3个核心的Struts标签库—bean,html,和logic--taglibtaglib-uri/tags/struts-bean/taglib-uritaglib-location/WEB-INF/lib/struts-bean.tld/taglib-location/taglibtaglibtaglib-uri/tags/struts-html/taglib-uritaglib-location/WEB-INF/lib/struts-html.tld/taglib-location/taglibtaglibtaglib-uri/tags/struts-logic/taglib-uritaglib-location/WEB-INF/lib/struts-logic.tld/taglib-location/taglib/web-appActionServlet的参数的配置Struts配置Struts配置文件(struts-config.xml)用来装入多个关键的框架组件。这些对象一起构成了Struts配置。struts-config下面配置针对常规ActionForm和DynaActionForm的form-bean元素配置form-beanname=menuFormtype=com.itjob.struts.MenuForm/form-beanname=logonFormtype=org.apache.struts.action.DynaActionFormform-propertyname=usernametype=java.lang.String/form-propertyname=passwordtype=java.lang.String//form-bean下面配置全局转发配置这些forward对应用中的每个Action都有效。你也可以部署一个局部ActionForward到action元素中。局部转发仅针对该ActionMapping有效。global-forwards第三十二章:配置Struts组件ITJob就业培训657forwardname=logoffpath=/logoff.do/forwardname=logonpath=/logon.do/forwardname=welcomepath=/welcome.do//global-forwards下面配置ActionMapping,它描述应用要采取的操作、命令。Action的URI被用作一个ActionMapping的逻辑标识符,或者路径。当web浏览器请求一个Action的URI,ActionServlet首先查找相应的ActionMapping。ActionMapping则告诉ActionServlet哪个Action对象要用于这个URI。action-mappings元素描述了我们的应用要用来处理请求的ActionMapping对象(org.apache.struts.action.ActionMapping)的集合。请求要到达应用然后到达ActionServlet,它必须匹配上下文和我们在容器中注册的url-pattern格式。如果URL是针对我们只需要引用/myAction作为ActionMapping的路径actionpath=/logonSubmittype=app.LogonActionname=logonFormscope=requestvalidate=trueinput=/pagess/Logon.jsp/actionpath=/logontype=app.ContinueActionforwardname=continuepath=/pagess/Logon.jsp//actionactionpath=/welcometype=app.ContinueActionforwardname=continuepath=/pagess/Welcome.jsp//action请求处理器是ActionServlet处理循环的核心。大多数情况下,你可以编写和装入一个请求处理器,来代替创建你自己的ActionServlet子类。contrllernocache=truenull=trueprocessorClass=com.myCompany.struts.RequestProcessor/每个模块都应该有其自己的缺省消息资源束。message-resourcesparameter=resources.application/message-resourcesparameter=resources.image/plug-in在Struts应用中,将验证任务委托给第三方的插件plug-inclassName=org.apache.struts.validator.ValidatorPlugInset-propertyproperty=pathnamevalue=/WEB-INF/validator-rules.xml/set-propertyproperty=pathnamevalue=/WEB-INF/validation.xml//plug-indata-sources为了帮助开发人员使用连接,Struts提供了一个数据源管理组件。你可以使用这个组实例化和配置一些实现数据源的对象,并且可以从JavaBean的属性进行整体配置。下面是一个数据源配置,使用MySQL数据库的Struts缺省配置:data-sourcesdata-sourceset-propertyproperty=maxCountvalue=4/set-propertyproperty=minCountvalue=2/set-propertyproperty=descriptionvalue=Artimus:MySQLDataSourceConfig/set-propertyproperty=driverClass第三十二章:配置Struts组件ITJob就业培训658value=org.gjt.mm.mysql.Driver/set-propertyproperty=urlvalue=jdbc:mysql://localhost:3306/artimus/set-propertyproperty=autoCommitvalue=true/set-propertyproperty=uservalue=root/set-propertyproperty=passwordvalue=//data-source/data-sources应用资源文件Struts框架提供了好用和灵活的消息系统,在Java和JSP代码中,要给定一个消息的关键字;消息文本在运行时丛属性文件中检索。框架文档将消息属性文件引用为applicationresources或者messageresourcebundle。如果你想要本地化你的应用,你可以为你想要支持的场所创建一个额外的应用资源文件。这实际上是创建一个资源束(java.util.ResourceBundle)。框架会为每个用户维护一个标准的Locale对象(java.util.Locale)。针对用户场所的合适的消息会自动从资源束中进行选取。两个概念:Locale(场所)对象是一个特定的语言和地区的识别符。ResourceBundle对象包含场所特定的对象。当需要一个场所特定的对象时,可以从资源束中取得,它返回匹配用户场所的对象。Struts框架为消息文本使用基于字符串的资源束。属性文件自身是一个平面的文本文件,每一行是一个关键字-值对。你可以使用任何文本编辑器进行编辑,包括Wind