第一部分:
在Struts2的相关WEB开发过程了,经常用Convention插件,使用Convention插件,实现约定大于配置的零配置文件风格.特殊的Result路径在Action类中使用@Result设定.
在页面开发中,经常要用到 "!"来实现跳转到struts2中Action类的自定义方法,例如:
<a href="login!submit.action">跳转</a></li>
就会跳转到LoginAction类的submit方法,不过要想实现这一功能,还得在struts.xml加入如下配置:
<!-- 启用动态方法调用 -->
<constant name="struts.enable.DynamicMethodInvocation" value="true" />
第二部分:
我来记录一下Convention插件都能在struts.xml文件中配置哪些功能。
<struts>
<!--开发模式设置开始//-->
<!--++++++++++++++++++++++++++++++++++++++++++++++++开发状态 -->
<constant name="struts.devMode" value="true" />
<!-- 国际化资源重新加载 -->
<constant name="struts.i18n.reload" value="true" />
<!-- 配置文件重新加载 -->
<constant name="struts.configuration.xml.reload" value="true" />
<!-- convention类从新加载 -->
<constant name="struts.convention.classes.reload" value="true" />
<!--++++++++++++++++++++++++++++++++++++++++++++++++开发模式结束 -->
<!-- 主题 -->
<constant name="struts.ui.theme" value="simple" />
<!-- 地区 -->
<constant name="struts.locale" value="zh_CN" />
<!-- 国际化编码 -->
<constant name="struts.i18n.encoding" value="UTF-8" />
<!-- 扩展-->
<constant name="struts.action.extension" value="action,do,jsp" />
<!-- 启用动态方法调用 -->
<constant name="struts.enable.DynamicMethodInvocation" value="true" />
<!-- 设置Struts 2是否允许在Action名中使用斜线 -->
<constant name="struts.enable.SlashesInActionNames" value="false" />
<!-- 结果资源所在路径 -->
<constant name="struts.convention.result.path" value="/"/>
<!-- action后缀 -->
<constant name="struts.convention.action.suffix" value="Action"/>
<!-- 名称首字母小写 -->
<constant name="struts.convention.action.name.lowercase" value="true"/>
<!-- 分隔符一个action名字的获取。比如为HelloWorldAction。按照配置,actionName为hello_world。 -->
<constant name="struts.convention.action.name.separator" value="_"/>
<!-- 禁用扫描 -->
<constant name="struts.convention.action.disableScanning" value="false"/>
<!-- 默认包 -->
<constant name="struts.convention.default.parent.package" value="default"/>
<!--确定搜索包的路径。只要是结尾为action的包都要搜索。basePackage按照默认不用配置,如果配置,只会找以此配置开头的包。locators及locators.basePackage都是一组以逗号分割的字符串。 -->
<constant name="struts.convention.package.locators" value="action"/>
<!-- 禁用包搜索 -->
<constant name="struts.convention.package.locators.disable" value="false"/>
<!-- 基于什么包 -->
<constant name="struts.convention.package.locators.basePackage" value="cn.com.action"/>
<!-- 排除的包 -->
<constant name="struts.convention.exclude.packages" value="org.apache.struts.*,org.apache.struts2.*,org.springframework.web.struts.*,org.springframework.web.struts2.*,org.hibernate.*"/>
<!-- 包含的包 -->
<!-- 包括的jar,一般用于大型项目,其action一般打包成jar -->
<constant name="struts.convention.action.includeJars" value="" />
<!-- 结果类型 -->
<constant name="struts.convention.relative.result.types" value="dispatcher,freemarker"/>
<!--
如果此值设为true,如果一个action的命名空间为/login,名称为HelloWorldAction。result返回值是success,默认会找到/WEB-INF/pages/login/hello_world.jsp(如果有hello_world_success.jsp就找这个文件,连接符“_”是在<constant name="struts.convention.action.name.separator" value="_"/>中配置的)。如果有一个action的result返回值是“error”,就会找/WEB-INF/pages /login/hello_world_error.jsp。
如果此值设为false,如果一个action的命名空间为/login,名称为HelloWorldAction。result返回值是success,默认会找到/WEB- INF/pages/login/hello_world/index.jsp(如果有success.jsp就找这个文件)。如果有一个action的result返回值是“error”,就会找/WEB-INF/pages /login/hello_world/error.jsp。
-->
<constant name="struts.convention.result.flatLayout" value="true"/>
<constant name="struts.convention.action.mapAllMatches" value="false"/>
<!-- 检查是否实现action -->
<constant name="struts.convention.action.checkImplementsAction" value="true"/>
<constant name="struts.mapper.alwaysSelectFullNamespace" value="false"/>
<constant name="struts.convention.redirect.to.slash" value="true"/>
<package name="default" extends="struts-default">
<interceptors>
<interceptor-stack name="defaultStack">
<interceptor-ref name="exception" />
<interceptor-ref name="servletConfig" />
<interceptor-ref name="actionMappingParams" />
<interceptor-ref name="staticParams" />
<interceptor-ref name="params" />
</interceptor-stack>
</interceptors>
</package>
</struts>
分享到:
相关推荐
标题 "springside 玩转acegi" 涉及到的是SpringSide项目中对Acegi安全框架的使用,Acegi是Spring早期的一个安全模块,后来被Spring Security所取代。Acegi提供了一套全面的Java安全解决方案,包括认证、授权、会话...
SpringSide4参考手册是一份详尽的文档,涵盖了使用SpringSide4.0版本开发应用时可能会用到的各种技术组件和模块。SpringSide是一个开源的Java开发平台,它集成了Spring框架和大量实用的组件,以方便开发人员构建复杂...
《SpringSide 3.2.2 源码解析与技术深度探讨》 SpringSide 是一个基于 Spring Framework 的 Java 开发工具集,旨在简化 Spring 应用程序的开发过程,提供一套快速、现代且规范的开发实践。SpringSide 3.2.2 版本是...
《SpringSide核心库4.1.0深度解析》 SpringSide是Java开发中的一款轻量级框架,它基于Spring框架,旨在简化企业级应用的开发流程。本文将深入探讨SpringSide-core-4.1.0的核心特性,以及其在实际项目中的应用。 一...
《springside开发全面讲解》是一份旨在帮助开发者深入了解并掌握springside框架的详尽教程。springside是一款基于Spring框架的轻量级开发工具集,它为Java开发提供了简洁、高效的解决方案,尤其适合中大型项目的开发...
pom.xml配置 ...mvn install:install-file -DgroupId=org.springside -DartifactId=springside-core -Dversion=4.2.2.GA -Dfile=./springside-core-4.2.2.GA.jar -Dpackaging=jar -DgeneratePom=true
《SpringSide 3.0:Java企业开发的高效框架指南》 SpringSide 3.0 是一个基于Spring框架的开源项目,旨在为Java开发者提供一套高效、简洁的开发规范和工具集。它不仅包含了Spring的核心模块,还整合了其他优秀的...
《深入解析springside4.2.3-GA.jar:Java开发者的宝藏库》 在Java开发领域,SpringSide框架以其高效、灵活和强大的特性深受开发者喜爱。本文将围绕springside4.2.3-GA.jar这个核心组件,探讨其在Java应用中的重要...
《SpringSide:全面解析与应用》 SpringSide项目是一个基于Java的开源软件开发框架,它以Spring Framework为核心,旨在提供一套简洁、规范的项目构建和开发实践。在深入理解SpringSide之前,我们首先需要了解Spring...
【标题】"springside-案例"所涉及的是SpringSide项目,这是一个开源的Java开发框架,旨在简化Spring框架的使用,提高开发效率。SpringSide是一个精心设计的、用于快速构建企业级应用的模板项目,它提供了清晰的代码...
《SpringSide 4:Spring MVC 实战展示》 在IT领域,SpringSide 4是一个备受推崇的开源项目,它是一个全面展示Spring框架及其生态系统的实战示例。标题"Springside4 (showcase)"暗示了这是一个以展示SpringSide 4...
### springside3.3.4使用方法与SSH整合详解 #### 一、Springside简介 Springside项目是基于Spring框架的一个应用架构示例,它提供了一套完整的开发模式来构建企业级Java Web应用程序。Springside 3.3.4版本作为一...
SpringSide3.3.4 安装部署详解 SpringSide3.3.4 安装部署是指在计算机上安装和部署 SpringSide3.3.4 软件的过程。在这个过程中,我们需要使用 Maven 工具来生成项目模板,安装 mini-web 应用程序,并配置相应的...
【Springside4 学习整理】 Springside4 是一个基于 JavaEE 平台的开源项目,它围绕 Spring Framework 构建,旨在提供实用的示例和最佳实践。Springside4 不是一个完整的框架,而是一个架构示例,帮助开发者理解和...
《SpringSide 4.0.0.GA:JavaEE世界的春天之光》 SpringSide,一个以Spring Framework为核心,秉持Pragmatic编程理念的JavaEE应用参考实例,它旨在为开发者提供主流技术选型的示范,展示JavaEE世界中的最佳实践。这...