Struts2笔记(3)——Struts的配置文件详解

来源:互联网 发布:java snmp api 编辑:程序博客网 时间:2024/05/17 10:09

基础配置

1.<package/>元素:将Action配置封装,package中可以有多个Action;

  • name:给予package一个名字作为标识;
  • namespace:给Action的访问路径中定义一个命名空间;
  • extends:继承一个指定包,这里可以先设定为”struts-default”,意为继承默认包,该包在Struts的默认配置文件struts-default.xml中可以找到,它为我们实现了许多配置,提高了效率;
  • abstract:包是否抽象。标识符号,当值为”true”时,表示该包抽象,没有具体实现Action,用于被继承,并不能独立运行。

2.<action/>元素 :在package元素内,用于定义action。

  • name:决定了URL中Action的访问资源名,以笔记(1)中helloworld的URL为例,http://localhost:8080/hello/HelloAction中的HelloAction就是该action的name;
  • class:完整类名;
  • method:调用action中指定方法处理请求。

3.<result/>属性:在元素action内

  • name:标识结果处理的名称,与action方法的返回值对应;
  • type:指定处理结果的result类。result是一个接口,根据需要实现重定向、请求转发等功能。默认使用转发;
  • 标签体:页面的相对路径。

4.<include/>属性:可以在此引入其它配置文件,这样可以使得业务逻辑更为清晰。

常量配置

1.默认常量值所在位置
位于核心包内org.apache.struts2.static的default.properties内,其中struts2常量设置以键值对的形式存在;
2.修改常量配置
更改struts2常量配置有三种常见方式:

  1. 在struts.xml下,使用<constance/>元素进行配置。该元素位于<struts/>元素下,只有name以及value两个属性,十分方便操作因而最为常用,主要需要掌握的也是这种方式;
  2. 在resources目录下新建struts.properties文件,将需要更改的键值对进行修改;
  3. 在web.xml文件中使用<context-param/>元素进行配置。

以上三种也是配置文件的加载顺序,如果采用了上述三种方式,那么最终加载的配置将会覆盖前者。
3.常用常量的介绍

  1. struts.i18n.encoding:i18n(internationalization的首字母及末字母以及中间包含18个字符),因而i18n是国际化的简称。指定Web应用的默认编码集,相当于调用HttpServletRequest的setCharacterEncoding方法。
  2. struts.action.extension:用于指定请求后缀名。默认值”action,,”其中逗号用于分隔,action以及”“空值。注意这里是没有空格的,就是空。
  3. struts.devMode:是否以开发模式运行。开发模式下,Struts将会对开发者更为友好,例如支持struts.i18n.reload=true,struts.xml文件的热部署,提供更多的错误日志输出。
  4. struts.ui.theme:设置struts页面标签样式。
    simple:把UI标签翻译成最简单的HTML对应元素,而且会忽视行标属性;
    xhtml:默认的主题。这个主题的模板通过使用一个布局表格提供了一种自动化的排版机制;
    css_xhtml:这个主题里的模板与xhtml主题里的模板很相似,但他们将使用css来进行布局和排版;
    ajax:这个主题里的模板以xhtml主题里的模板为基础,但增加了一些ajax功能。
  5. struts.configuration.xml.reload:设置更改之后是否自动重加载配置文件。

进阶

动态方法调用

当一个Action中有多个业务方法,而我们需要根据需求调用不同的方法时,如果依然才用上文中在action中为每个方法配置一次method属性,就十分繁琐,所以我们必须实现动态调用方法。动态调用方法的实现通常有两种方式。

  1. 配置动态调用方法常量:
    <constant name="struts.enable.DynamicMethodInvocation" value="true"/>
    然后在请求的URL中XXXAction后采用!methodName请求方法。但该种的URL方式对于SEO优化不友好,因而不推荐。
  2. 在action的name属性后缀*,用以匹配方法名,method={1},以获得action中的方法名称。这里name的后缀中可以包含多个通配符,而{1}则表示取第一个。

默认配置的了解

method属性的默认值:excute。
result标签name默认值:success。
result的type的默认值:dispatcher,表示转发。
class的默认值:ActionSupport。
<default-action-ref/>用于配置访问不存在XXXAction时的默认处理Action类。

阅读全文
0 0