理解 Struts 配置文件
2006-09-01 15:51
411 查看
[align=left]理解 Struts 配置文件 通过一个基于 XML 的配置文件来记录和控制 Struts 配置。缺省情况下,该文件的名称是struts-config.xml,位于 Web 应用程序的WEB-INF 目录中。Struts 有一个中央控制器 Servlet (org.apache.struts.action.ActionServlet),首次加载 Struts 应用程序时,它会对该配置文件进行分析。 [/align] [align=left]该配置文件包含 Action 类与 Form 类的映射。映射为应用程序提供页面流。因此,配置文件的两个重要部分是<form-beans>和<action-mappings>。[/align] 下面是一个示例form-bean:
|
对应的action-mapping是这样的:
|
[align=left]合并后的应用程序流是这样的:[/align] [align=left]如果Struts 配置文件中提供的配置详细信息正确,Struts 控制器会对该应用程序流实施控制。如果提供的路径不正确或未在类加载器中找到 Form Bean 或 Action Bean,控制器将返回运行时错误。[/align] [align=left][/align] |
[align=left]<action path="/login" type="com.test.LoginAction" name="LoginForm" scope="request" validate="true" input="/pages/Login.jsp"/>[/align] [align=left] [/align] |
[align=left]可以使用其中的 path 属性"/login"调用 Servlet。[/align] [align=left]Action 类定义需要先行覆盖,才能执行任何任务的 execute 方法。Execute 方法有权访问对应视图的actionForm Bean、对整个 Struts 配置的引用、HttpServletRequest对象及HttpServletResponse对象。这使 execute 方法能够对 HttpSession 对象、HttpSelvletRequest 对象及HttpServletResponse对象执行操作。[/align] |
[align=left] [/align] [align=left]public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response)[/align] [align=left] [/align] |
[align=left]备注:在 Struts 1.0 中,该方法的名称是perform()。Struts 1.1 已不支持该方法。[/align] [align=left]Action 类返回ActionForward对象。此ActionForward对象确定需要将请求发送到的正确视图。还会在 Struts 配置文件中注册需要将控制权转交给的正确视图。 [/align] [align=left]在上例中,假定在登录失败时需要将控制权传递给error.jsp,在登录成功时需要将控制权传递给nextPage.jsp。Forward 标记的注册方式如下:[/align] |
[align=left] [/align] [align=left]<action path="/login" type="com.test.LoginAction" name="LoginForm" scope="request" validate="true" input="/pages/Login.jsp"> <forward name="failure" path="/error.jsp"/> <forward name="success" path="/nextPage.jsp"/></action>[/align] [align=left] [/align] |
[align=left]Execute 方法通常以下列语句作为结束语句。[/align] [align=left]return (mapping.findForward("failure"));[/align] [align=left]其中的 mapping 指的是ActionMapping对象。已定义了特定 action 的 "failure" 路径。因此以上语句实际执行的操作是将请求发送给error.jsp。 [/align] [align=left]以上示例中的<forward>标记具有局部作用域,可以在定义时所针对的 action 内使用。但也可以定义全局 forward。全局 forward 也在 Struts 配置文件中定义,这与任何其它配置信息是一样的。正如定义全局变量那样,全局 forward 可以在应用程序中的任何地方使用。 [/align] |
[align=left] [/align] [align=left]<global-forwards> <forward name="welcome" path="/Welcome.jsp"/> </global-forwards>[/align] [align=left] [/align] |
[align=left]因此,可以在应用程序中的任何地方使用mapping.findForward("welcome"),而它始终会将控制权转交给Welcome.jsp。[/align] [align=left][/align] |
[align=left]Validate 方法和错误处理 如前所述,可以在struts-config.xml中禁用操作和验证。Action 中央控制器将确保不进行验证。 [/align] |
[align=left] [/align] [align=left]<action path="/login" type="com.test.LoginAction" name="LoginForm" scope="request" validate="true" input="/pages/Login.jsp"/>[/align] [align=left] [/align] |
[align=left]Validate 方法返回ActionErrors对象。这些对象充当错误信息的容器。如果验证失败,将把这些对象返还给调用 JSP,它可以处理对象以显示它们。[/align] [align=left][/align] |
[align=left]排除消息资源故障 消息资源帮助开发人员在一个集中位置存储标签、错误信息等内容,简化了后续阶段的维护工作。该集中位置是一个属性文件,存储在应用程序的类路径中,因此组件可以方便地访问。[/align] [align=left]以下是为 Struts 应用程序定义消息资源的两种方法:[/align] web.xml struts-config.xml [align=left]对于web.xml,将属性文件定义为ActionServlet的 param-value。下面是一个简短的示例:[/align] |
[align=left]<servlet> <servlet-name>action</servlet -name> <servlet-class> org.apache.struts.action .ActionServlet </servlet-class> <init-param> <param-name> application </param-name> <param-value> beatest.ApplicationResources </param-value> </init-param> </servlet> [/align] |
相关文章推荐
- 框架之Struts2篇----day3.3(配置文件)团队协作(可以理解成package配置)
- struts1 配置 文件 跳转 理解
- struts 中关于xml配置文件中namespace的理解
- Structs2中配置文件详解-不仅要会用更要理解
- struts配置文件path属性传多个参数时注意点
- Struts2中struts.xml的Action配置详解(一)===》 struts2.0中struts.xml配置文件详解 (二)==》Struts2_struts.xml配置及例程三
- struts2.0中struts.xml配置文件详解
- Struts 2 之配置文件
- Struts的两个配置文件讲解
- struts2中struts.xml配置文件详解
- struts2:struts.properties配置文件介绍及常量加载顺序
- 理解 Linux 配置文件(转载)
- 如何防止struts配置文件的膨胀
- 理解和灵活应用 Struts2 的文件下载功能
- struts.xml配置文件的内容标签
- Hibernate hbm——SSH (Spring+Struts+Hibernate)框架搭建之配置文件序列五
- struts简单例子的分析(含代码注释和配置文件说明)
- 例子代码:struts.xml配置文件
- Struts.xml配置文件详解
- struts.xml配置文件(package,namespace,action)