Struts2配置解析与实战体验

需积分: 0 0 下载量 66 浏览量 更新于2024-09-15 收藏 116KB DOC 举报
"这篇文档是作者对Struts2框架个人理解和使用体验的总结,主要涵盖了Struts2的核心配置、配置文件的变化以及一些关键配置选项和配置节点的介绍。" 在Struts2框架中,与传统的Struts1相比,配置方面有了显著的变化。首先,不再像Struts1那样使用`actionServlet`作为核心控制器,而是通过在`web.xml`配置文件中设定一个名为`servlet-struts2`的Filter来实现。这一改变使得Struts2能够更好地融入到现有的Web应用架构中,增强了其灵活性。 Struts2的配置文件也从`struts-config.xml`转变为`struts2.xml`,这反映了框架的更新和改进。此外,Struts2引入了`struts-default.xml`作为默认配置文件,其中包含了框架的默认行为和设置。如果需要自定义某些配置,可以在`struts2.xml`中进行覆盖或者添加。另一个值得注意的文件是`default.properties`,它用于存储Struts2框架中的各种常量。 在国际化(i18n)支持方面,可以通过配置`<constant>`元素来指定字符编码,例如`<constant name="struts.i18n.encoding" value="GBK"/>`,这样可以确保中文字符正确处理。开发模式可以通过设置`<constant name="struts.devMode" value="true"/>`开启,这将提供更丰富的错误信息和调试帮助。同时,为了允许OGNL访问静态方法,可以配置`<constant name="struts.ognl.allowStaticMethodAccess" value="true"/>`。UI主题的定制则通过`<constant name="struts.ui.theme" value="css_xhtml"/>`来实现,这里示例的是`css_xhtml`主题,可以根据需求选择或创建其他主题。 在配置文件的结构上,Struts2支持包含多个配置文件,如`<include file="login.xml"/>`,这有利于组织复杂的项目结构。`<default-action-ref name="index"/>`则定义了默认访问的Action,当用户访问未明确指定的Action时,系统将自动跳转到`index`。`<package>`节点用于封装相关的Action和拦截器,其中`namespace`属性定义了Action的命名空间,`extends`属性用于继承其他包的配置,这提供了很好的代码复用性。 在`<package>`内部,`<interceptors>`节点定义了拦截器链,`<interceptor>`节点用来配置自定义拦截器或引用已有的拦截器。每个`<action>`节点定义了一个具体的Action,通过`class`属性指定处理类,`method`属性指定执行的方法。`<result>`节点定义了Action执行后跳转的目标页面,通常使用`dispatcher`类型。`<interceptor-ref>`节点用于引用拦截器栈,`<interceptor-ref name="defaultStack">`表示使用Struts2默认的拦截器栈,如果需要添加自定义拦截器,可以按照特定顺序将其插入到默认栈中。 Struts2框架提供了更加灵活和强大的配置机制,允许开发者根据项目需求调整框架的行为,提高了开发效率和应用的可维护性。通过理解并熟练掌握这些配置,开发者可以更好地驾驭Struts2,构建出高效稳定的Web应用。