Struts笔记(一)Struts配置文件
1. Struts配置文件
Web应用部署描述符web.xmlStruts配置文件struts-config.xml应用资源配置文件application.propertiesstruts组件配置文件
1.1. web.xml
配置struts的ActionServlet 和标签库。
如:
代码中编号的地方对应下面的注释。
①标识为 web 应用部署描述符——前两行将文件标识为一个web 应用部署描述符。
②配置 ActionServlet— 这一段告诉容器装入action 名称下的ActionServlet 。有四个参数传递给ActionServlet: 即application,config, debug, 和detail。ActionServlet也可以接受其它参数。<load-on-startup>,给容器一个action servlet 的权重。如果设置为2,则允许其它 servlet 在需要时首先装入。这
将在你子类化了ActionServlet 之时显得很重要,以便你可以使用其它servlet 先期装入的资源。对一个应用来说, 仅可以装入一个ActionServlet 或者 ActionServlet 的子类。ActionServlet 设计为可以和应用中的其它组件共享资源。装入多ActionServlet 会造成冲突;因为一个 ActionServlet 可能会改写另一个ActionServlet 提交的资源。Struts 1.1 支持模块化应用,但仍然只允许装入一个ActionServlet 。
③标识 Struts 请求—这一段告诉容器将匹配*.do 格式的文件请求转发到action servlet。这就是我们在①中配置的ActionServlet 。不匹配这种格式的文件请求将不被Struts 处理。比如对*.html 或 *.jsp 文件的请求通常由容器内建的服务来处理。
④创建 welcome 文件—不幸的是,在这里设置一个index.do 文件将不会工作。容器希望
welcome 文件也是一个物理文件。
⑤配置标签库—这里我们配置应用中使用的标签库。 3 个核心的Struts 标签库—bean, html,和logic— 将可用在大多数应用中。如果你的应用中使用了其它的标签库,它们也在此进行配置。第一个元素,<taglib-uri>,给出标签库的逻辑名称。这通常看起来像是一个文件路径, 但其实不是。JSP 在导入标签库时将引用这个URI 。第2 个元素,<taglib-location>,提供提供了一个上下文相关的标签库描述符 (*.tld)路径。TLD 标识了库的实际类型(Java类)。当需要这个库时,容器会搜索标签库类文件的 classpath 。对Struts 标签库来说,容器将在struts.jar 文件中找到这些包。
1.2. struts-config.xml
xml)用来装入多个关键的框架组件。这些对象一起构成了Struts 配置。Struts 配置和 Struts ActionServlet 一起工作,创建应用的控制层。
Struts 配置是你的应用的真实蓝图。它知道表单中有什么字段。它知道哪里可以找到JSP文件。它也知道应用执行的每一个Action ,以及每个action 需要的实际资源。Struts 配置中的每个组件都是Java 对象。ActionForm 对象知道字段和表单。ActionForward 对象知道何处可以找到JSP 或其它资源。
1.2.1. <global-exceptions>注册异常
1.2.2. <form-beans>注册ActionFormBean
1.2.3. <global-forwards>注册全局ActionForward
这些 forward 对应用中的每个Action 都有效。你也可以部署一个局部 ActionForward 到<action> 元素中。局部转发仅针对该ActionMapping 有效。
1.2.4. <action-mappings>注册ActionMapping
<action-mappings> 元素描述了我们的应用要用来处理请求的ActionMapping 对象
(org.apache.struts.action.ActionMapping) 的集合。ActionMapping 则描述应用要采取的操作、命令。
1.2.5. <Controller>
Struts 允许多个应用模块共享一个单一的控制器 servlet。每个模块有其自己的Struts 配置并且可以相对于其他模块独立开发。<controler> 元素允许每个模ActionServlet 标识一套不同的配置参数。它们大多数是部署描述符中的原始<init-params>设置。<controller> 元素设置的属性值存储在一个控制器配置bean(org.apache.struts.config.ControllerConfig)之中。每个应用模块要创建一个控制器配置,包括缺省的根模块。如果一个模块的 struts-config 提供了一个<contrller> 元素,就是用来设置模块的控制器配置bean 的属性。
因为各个模块共享 ActionServlet, 你也可以为每个模块插入不同的请求处理器。这可以使每个模块都按自己的方式处理请求,而不用子类化共享的servlet。
1.3. application.properties
存放Struts资源束。文件自身是一个普通的文本文件,每一行是一个关键字-值对。可以实现应用的国际化。# -- Custom messages for struts-messages application --# -- See http://www.coreservlets.com/Apache-Struts-Tutorial/ --form.title=Registrationform.firstName=First nameform.lastName=Last nameform.emailAddress=Email addressform.buttonLabel=Register Meform.successString=Success