- 浏览: 755436 次
- 性别:
- 来自: 北京
-
文章分类
最新评论
-
梦行Monxin商城系统:
java网上商城与php网上商城比较 -
梦行Monxin商城系统:
java网上商城与php网上商城比较 -
任楚娴:
你好,请问html = nvl(html); 这句中的nvl( ...
java html串转换成文本串 -
u013246812:
,谢拉!
jQuery ui Dialog 讲解参数 -
大宝剑99:
...
前端优化
1.官方介绍的地址:
http://struts.apache.org/2.1.6/docs/convention-plugin.html
2.struts.xml文件配置
只挑选几个重要的常量说明:
(1) <constant name="struts.locale" value="zh_CN"/>
<constant name="struts.i18n.encoding" value="UTF-8"/>
struts2.1.6 现在只需要一个struts.xml文件就可以了。以前配struts.locale=zh_CN,struts.i18n.encoding=UTF-8,应用起动时会报一个警告,说没有配置locale,必须要在struts.properties里面配置才不会报错,现在这个问题已经解决了,所有配置都可以在xml文件中指定了。
(2) <constant name="struts.action.extension" value="action,do,,"/>
扩展名可以指定为空。这样地址栏比较好看。但也会有个问题,就是一些其他servlet映射,如cxf,我们会映射地址为/services/*,现在这个地址也变成struts2控制范围的地址了,如果按默认的配置会报找不到action的错误。解决办法是修改mapper类。这在以后文章中会提到。
(3) <constant name="struts.enable.DynamicMethodInvocation" value="true"/>
<constant name="struts.enable.SlashesInActionNames" value="true"/>
开启动态方法。要实现零配置,就是需要动态方法调用。开启action名称可以有 “/”,一个请求地址有多个“/”,struts2就不会再使用类路径扫描的命名空间,只会使用配置的名称。所以既想action名称里使用“/”,又想用struts2默认搜索的命名空间,只能自己修改一下convention插件的实现类了。
(4) <constant name="struts.ui.theme" value="simple"/>
不用dojo的及struts2复杂标签样式的就把主题设置为simple,这样可以不加载多余的模板。
(5) <constant name="struts.devMode" value="true"/>
<constant name="struts.i18n.reload" value="true"/>
<constant name="struts.configuration.xml.reload" value="true"/>
<constant name="struts.convention.classes.reload" value="true" />
开启开发者模式,在平时开发时修改action的annotation配置可以不重启,但是修改struts.xml文件还是要重启。修改类的具体内容,debug模式下可以不重启,或是使用javarebel,这个不在讨论范围。
(6) <constant name="struts.convention.result.path" value="/WEB-INF/pages/"/>
指定结果页面路径。 convention插件会自动在此路径中寻找文件。放到WEB-INF的目的的保护文件资源,只能通过程序内部跳转才能访问,我们的权限拦截器或其他权限处理只要加到action上就可以了。
(7) <constant name="struts.convention.action.suffix" value="Action"/>
<constant name="struts.convention.action.name.lowercase" value="true"/>
<constant name="struts.convention.action.name.separator" value="_"/>
一个action名字的获取。比如为HelloWorldAction。按照配置,actionName为hello_world。
(8)<constant name="struts.convention.action.disableScanning" value="false"/>
是否不扫描类。一定要设为false,否则convention插件不起作用,零配置也没有意义。
(9)<constant name="struts.convention.default.parent.package" value="default"/>
设置默认的父包,一般我们都设置一个default包继承自struts-default。大部分类再继承default。如果有特殊的类需要特殊的包,只能在action中再指定父包了。
(10) <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=""/>
确定搜索包的路径。只要是结尾为action的包都要搜索。basePackage按照默认不用配置,如果配置,只会找以此配置开头的包。locators及locators.basePackage都是一组以逗号分割的字符串。
(11) <constant name="struts.convention.exclude.packages" value="org.apache.struts.*,org.apache.struts2.*,org.springframework.web.struts.*,org.springframework.web.struts2.*,org.hibernate."/>
排除哪些包不搜索。按默认配置即可。逗号分割字符串。
(12) <constant name="struts.convention.action.includeJars" value="" />
包括哪些jar包中的action。逗号分割字符串。
(13)<constant name="struts.convention.relative.result.types" value="dispatcher,freemarker,velocity"/>
默认返回的结果类型搜索。按顺序先找相关的dispatcher的jsp文件是否存在。然后再找freemarker,再找velocity。
(14)<constant name="struts.convention.result.flatLayout" value="true"/>
如果此值设为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。
(15) <constant name="struts.convention.action.mapAllMatches" value="false"/>
<constant name="struts.convention.action.checkImplementsAction" value="false"/>
<constant name="struts.mapper.alwaysSelectFullNamespace" value="false"/>
<constant name="struts.convention.redirect.to.slash" value="true"/>
这几个配置没有太多的实际意义,本着最小检查的原则就可以。
(16)默认拦截器配置,已经简化了许多,一般不需要chain和 fileupload。modelDriven也没什么用,如果我们要使用restfull插件会有用。其实最简单只要一个params就可以了。我加入 exception是为了开发时的异常。servletConfig是为了包装一下request,reponse等对象,staticParams是为了可以配置${}形式参数。actionMappingParams是struts2.1新增的,我初步认为是可以在action配置中传参数,这个还有些疑问。
Xml代码
<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>
<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>
发表评论
-
全国最新行政区划代码(Tree)json数据以及地理数据
2020-11-11 21:23 393基于阿里提供的地理数据 http://datav.aliyun ... -
小知识点--解锁 AppChecker ping ip
2019-06-19 08:40 460在使用AppChecker 进行主动拨测的时候,目 ... -
记录年会小系统
2018-02-04 14:42 1154有点意思,年会过后,抽奖活动saas小系统扒光看看:支持P ... -
jdbc方式以 sys账号连接oracle数据的问题
2017-08-22 10:44 495多年以后,在操作oracle 时 发现 jdbc 连 ... -
proguard 代码混淆
2016-11-22 10:59 709url:http://proguard.sourceforg ... -
solr 表达式意义
2015-02-03 19:29 7881. “:”指定字段查指定值,如返回所有值*:* 2. “? ... -
solr 安装配置
2015-02-03 13:15 756solr 安装配置步骤: 1 首先下载solr(最新 ... -
javax.net.ssl.SSLKeyException: RSA premaster secre临时解决方案
2014-11-25 19:38 4433javax.net.ssl.SSLKeyException ... -
compass 小知识点
2014-09-15 10:22 951今天发现排序不管事, 查了一下:索引的问题:排序的列不进 ... -
java_opts 常用
2014-08-14 13:16 1252JVM设置,可以查考如下配置example:# Memory ... -
RPC Socket 服务调用模型
2014-04-09 16:14 613最近在看Dubbo 服务框架, 通过RPC 实现了输入和 ... -
JVM 基本参数
2014-04-03 11:49 798基本的JVM参数:-classpath, -cp: 设置类搜 ... -
eclipse 快捷键失效解决方法
2014-01-17 17:20 731有时候eclispe快捷键失效了,编码起来太难受了。 ... -
Compass+ lucene 通用代码(脱离数据库)
2013-11-08 15:09 952最近需要通过检索分类的方式进行处理,所以就写了接口与实 ... -
DEBUG远程tomcat
2013-08-21 13:35 1010一、在windows系统中:打开%CATALINE_H ... -
自动获取网页内容,然后写入excel文档中
2013-07-05 15:22 3460今天需要将北京物业公司名称以及电话给整理出来,发现爱帮 ... -
继续学习jersey+spring 构建RESTful风格 webservice
2013-03-13 10:36 3475j先说一下springmvc rest风格 spring ... -
尽量少使用jaxb 进行xml与对象互换
2013-03-09 17:33 1369尽量少使用jaxb 进行xml与对象互换 问题不少,这个好 ... -
Cookie path的设置
2013-02-21 10:58 1962cookie path 设置 IE对如下的co ... -
http 相关知识点
2012-10-11 10:49 1091Host头域 Host头域指定请求资源的Intenet主机和 ...
相关推荐
总结起来,"Struts2+Hibernate3.5+Spring3.0(Annotation)"的组合为Java Web开发提供了一个强大的基础架构,尤其在权限管理方面。通过合理的配置和使用注解,可以实现高效、灵活且易于维护的权限控制系统。这不仅...
Struts2_API是开发者在使用Struts2框架时的重要参考资料,它详细地列出了框架提供的所有类、接口和方法,帮助开发者理解并有效地利用Struts2的功能。 1. **Action接口与ActionSupport类**: - `Action`接口是...
十二、总结 本教程对struts2的基本知识进行了一些说明,关于struts2的更多详细内容应参看struts2的官方文档及提供的app实例。 下面对struts2的基本执行流程作一简要说明,此流程说明可以结合官方提供的struts2结构图...
### Struts2 JSON插件入门知识点详解 #### 1. 依赖包 - **Struts2 必需的 6 个 jar 包** - `commons-fileupload-1.2.2.jar`: 提供了文件上传功能的支持。 - `commons-io-2.0.1.jar`: 用于处理I/O操作,简化输入...
- **说明**:当启用Struts2的调试模式时,此拦截器会提供更多的日志信息,便于开发者调试程序。 8. **Exec And Wait (执行并等待)** - **用途**:允许异步执行Action,在Action执行过程中显示一个等待页面给...
struts2+spring+hibernate(实现XML和Annotation两种方式操作数据库) 项目描述: 框架及版本:struts2 + spring3.0 + hibernate3.3 所实现的功能说明 把两个对象存入到数据库中 1、一种方法采用XML文件映射的方式 2...
springmvc注解.doc,Spring注解讲解.doc,struts2标签详解.pdf,struts2常用标签.pdf,Struts2页面开发中常用标签.pdf,Struts2注解详细说明文档.doc,Hibernate注解教程:Hibernate Annotation使用实例.maff
**知识点:Struts2极速表单验证框架** **1. 概述** Struts2极速表单验证框架是Struts Plus项目的一个子模块,旨在提高Struts2框架下的表单验证效率与便捷性。该框架由刘长炯(beansoft@126.com)创建,初始版本发布...
【Spring_Hibernate_Struts2整合】是Web开发中常见的技术栈整合,主要涉及Spring、Hibernate和Struts2这三个主流的Java EE框架。整合这三大框架可以让应用具备强大的数据持久化能力、灵活的业务逻辑处理以及高效的...
1. **配置Struts2**:在struts2的核心配置文件`struts.xml`中,定义Action类和对应的视图,设置Action与Spring Bean的关联,这样Struts2可以调用Spring管理的Bean来执行业务逻辑。 2. **配置Spring**:创建Spring的...
### Spring2.5 + Hibernate3.2 + Struts2.0 组合配置说明 在当前的软件开发领域,Spring2.5、Hibernate3.2 和 Struts2.0 这三个框架因其卓越的性能与丰富的功能而备受青睐。它们分别在业务逻辑层管理、数据持久化...
在IT领域,特别是Java开发框架中,Spring和Struts2都是极为重要的技术栈,它们各自通过注解(Annotation)机制提供了强大的功能扩展性和代码简洁性。以下是对Spring和Struts2注解的深入解析和使用指南。 ### Spring...
以下是关于Struts2中Action数据绑定的几种方法的详细说明: 1. **属性注解(Field Annotation)** Struts2支持使用JavaBeans的getter和setter方法进行数据绑定,但也可以通过在字段上添加注解来简化这一过程。例如...
Struts2以其强大的功能、灵活性和广泛的社区支持,成为许多企业和开发者构建Java Web应用的首选。在这个最新的2.1.1版本中,我们能够期待一些改进和新特性,尽管描述中没有具体说明。 首先,让我们深入理解Struts2...
- **官方文档**:Struts2、Hibernate、Spring等框架的官方文档提供了详细的使用说明和技术指南。 - **社区讨论**:Stack Overflow、GitHub等平台上有大量的技术讨论和示例代码可供参考。 - **教程资源**:黎活明、...
在Struts2中,注解被用来标记控制器类、方法以及参数,用于定义请求映射、拦截器和结果类型等。 1. **Action注解**:在Struts2中,`@Action`注解用于标记一个方法作为处理特定HTTP请求的入口点。例如: ```java @...
- 通过MyEclipse的Add Struts Capabilities功能,选择struts2.1版本,添加Struts Core和Struts 2 Spring库。 - 配置Struts.xml和web.xml:Struts.xml用于定义Action,web.xml则配置核心过滤器。 4. 添加Spring...
2. **配置Struts2的过滤器**:在`web.xml`中添加Struts2的过滤器`StrutsPrepareAndExecuteFilter`,并将URL模式设置为`/*`,这样所有请求都将通过Struts2处理。 #### 六、配置Web.xml和applicationContext.xml ...
在Java开发领域,SSH(Struts2 + Spring + Hibernate)是一个经典的MVC框架组合,用于构建企业级Web应用。本文将详细阐述如何整合S2SH(Struts2、Spring、Hibernate)框架,并介绍如何添加jar文件以及配置相关步骤。...