Java Web开发——Struts2 中.action和.do的奥秘

为什么Struts.action 的时候可以访问,是.do 的时候不能访问呢?遇到这个问题的时候有点晕乎,在网上查了些资料,终于恍然大悟!下面把自己的经验说来给大家,希望对大家有所帮助。

其实问题发生在struts.properties 配置文件 里,解决方法是将struts.action.extension 改为如下形式struts.action.extension=do,action

这样.action .do 都可以访问了。

struts.properties 中还可以配置很多内容,现在列出来:

下面附struts.properties 配置文件的详解:

Struts 2 框架有两个核心配置文件,struts.xmlstruts.properties, 其中struts.xml 文件主要负责管理应用中的Action 映射,以及该Action 包含的Result 定义等。除此之外,Struts 2 框架还包含一个struts.properties 文件,该文件定义了Struts 2 框架的大量属性,开发者可以通过改变这些属性来满足应用的需求。

              struts.properties 文件是一个标准的Properties 文件,该文件包含了系列的key-value 对象,每个key 就是一个Struts 2 属性,该key 对应的value 就是一个Struts 2 属性值。

              struts.properties 文件通常放在Web 应用的WEB-INF/classes 路径下。实际上,只要将该文件放在Web 应用的CLASSPATH 路径下,Struts 2 框架就可以加载该文件。

            其实,struts.properties 文件的内容均可在struts.xml 中以<constant name="" value=""></constant>

下面将该文件的配置参数详细列举出来,方便大家查看;

struts.configuration

该属性指定加载Struts 2 配置文件的配置文件管理器。该属性的默认值是org.apache.struts2.config.DefaultConfiguration ,这是Struts 2 默认的配置文件管理器。如果需要实现自己的配置管理器,开发者则可以实现一个实现Configuration 接口的类,该类可以自己加载Struts 2 配置文件。

struts.locale

指定Web 应用的默认Locale

struts.i18n.encoding

指定Web 应用的默认编码集。该属性对于处理中文请求参数非常有用,对于获取中文请求参数值,应该将该属性值设置为GBK 或者GB2312

提示 当设置该参数为GBK 时,相当于调用HttpServletRequest setCharacterEncoding 方法。

struts.objectFactory

指定Struts 2 默认的ObjectFactory Bean ,该属性默认值是spring

struts.objectFactory.spring.autoWrite

指定Spring 框架的自动装配模式,该属性的默认值是name ,即默认根据Beanname 属性自动装配。

struts.objectFactory.spring.useClassCache

该属性指定整合Spring 框架时,是否缓存Bean 实例,该属性只允许使用truefalse 两个属性值,它的默认值是true 。通常不建议修改该属性值。

struts.objectTypeDeterminer

该属性指定Struts 2 的类型检测机制,通常支持tigernotiger 两个属性值。

struts.multipart.parser :该属性指定处理multipart/form-dataMIME 类型(文件上传)请求的框架,该属性支持cospelljakarta 等属性值,即分别对应使用cos 的文件上传框架、pell 上传及common-fileupload 文件上传框架。该属性的默认值为jakarta

注意 如果需要使用cos 或者pell 的文件上传方式,则应该将对应的JAR 文件复制到Web 应用中。例如,使用cos 上传方式,则需要自己下载cos 框架的JAR 文件,并将该文件放在WEB-INF/lib 路径下。

struts.multipart.saveDir

该属性指定上传文件的临时保存路径,该属性的默认值是javax.servlet.context.tempdir

struts.multipart.maxSize

该属性指定Struts 2 文件上传中整个请求内容允许的最大字节数。

struts.custom.properties

该属性指定Struts 2 应用加载用户自定义的属性文件,该自定义属性文件指定的属性不会覆盖struts.properties 文件中指定的属性。如果需要加载多个自定义属性文件,多个自定义属性文件的文件名以英文逗号(, )隔开。

struts.mapper.class

指定将HTTP 请求映射到指定Action 的映射器,Struts 2 提供了默认的映射器:org.apache.struts2.dispatcher.mapper.DefaultActionMapper 。默认映射器根据请求的前缀与Actionname 属性完成映射。

struts.action.extension

该属性指定需要Struts 2 处理的请求后缀,该属性的默认值是action ,即所有匹配*.action 的请求都由Struts 2 处理。如果用户需要指定多个请求后缀,则多个后缀之间以英文逗号(, )隔开。

struts.serve.static

该属性设置是否通过JAR 文件提供静态内容服务,该属性只支持truefalse 属性值,该属性的默认属性值是true

struts.serve.static.browserCache

该属性设置浏览器是否缓存静态内容。当应用处于开发阶段时,我们希望每次请求都获得服务器的最新响应,则可设置该属性为false

struts.enable.DynamicMethodInvocation

该属性设置Struts 2 是否支持动态方法调用,该属性的默认值是true 。如果需要关闭动态方法调用,则可设置该属性为false

struts.enable.SlashesInActionNames

该属性设置Struts 2 是否允许在Action 名中使用斜线,该属性的默认值是false 。如果开发者希望允许在Action 名中使用斜线,则可设置该属性为true

struts.tag.altSyntax

该属性指定是否允许在Struts 2 标签中使用表达式语法,因为通常都需要在标签中使用表达式语法,故此属性应该设置为true ,该属性的默认值是true

struts.devMode

该属性设置Struts 2 应用是否使用开发模式。如果设置该属性为true ,则可以在应用出错时显示更多、更友好的出错提示。该属性只接受trueflase 两个值,该属性的默认值是false 。通常,应用在开发阶段,将该属性设置为true ,当进入产品发布阶段后,则该属性设置为false

struts.i18n.reload

该属性设置是否每次HTTP 请求到达时,系统都重新加载资源文件。该属性默认值是false 。在开发阶段将该属性设置为true 会更有利于开发,但在产品发布阶段应将该属性设置为false

提示 开发阶段将该属性设置了true ,将可以在每次请求时都重新加载国际化资源文件,从而可以让开发者看到实时开发效果;产品发布阶段应该将该属性设置为false ,是为了提供响应性能,每次请求都需要重新加载资源文件会大大降低应用的性能。

struts.ui.theme

该属性指定视图标签默认的视图主题,该属性的默认值是xhtml

struts.ui.templateDir

该属性指定视图主题所需要模板文件的位置,该属性的默认值是template ,即默认加载template 路径下的模板文件。

struts.ui.templateSuffix

该属性指定模板文件的后缀,该属性的默认属性值是ftl 。该属性还允许使用ftlvmjsp ,分别对应FreeMarkerVelocityJSP 模板。

struts.configuration.xml.reload

该属性设置当struts.xml 文件改变后,系统是否自动重新加载该文件。该属性的默认值是false

struts.velocity.configfile

该属性指定Velocity 框架所需的velocity.properties 文件的位置。该属性的默认值为velocity.properties

struts.velocity.contexts

该属性指定Velocity 框架的Context 位置,如果该框架有多个Context ,则多个Context 之间以英文逗号(, )隔开。

struts.velocity.toolboxlocation

该属性指定Velocity 框架的toolbox 的位置。

struts.url.http.port

该属性指定Web 应用所在的监听端口。该属性通常没有太大的用户,只是当Struts 2 需要生成URL 时(例如Url 标签),该属性才提供Web 应用的默认端口。

struts.url.https.port

该属性类似于struts.url.http.port 属性的作用,区别是该属性指定的是Web 应用的加密服务端口。

struts.url.includeParams

该属性指定Struts 2 生成URL 时是否包含请求参数。该属性接受nonegetall 三个属性值,分别对应于不包含、仅包含GET 类型请求参数和包含全部请求参数。

struts.custom.i18n.resources

该属性指定Struts 2 应用所需要的国际化资源文件,如果有多份国际化资源文件,则多个资源文件的文件名以英文逗号(, )隔开。

struts.dispatcher.parametersWorkaround

对于某些Java EE 服务器,不支持HttpServlet Request 调用getParameterMap() 方法,此时可以设置该属性值为true 来解决该问题。该属性的默认值是false 。对于WebLogicOrionOC4J 服务器,通常应该设置该属性为true

struts.freemarker.manager.classname

该属性指定Struts 2 使用的FreeMarker 管理器。该属性的默认值是org.apache.struts2.views.freemarker.FreemarkerManager ,这是Struts 2 内建的FreeMarker 管理器。

struts.freemarker.wrapper.altMap

该属性只支持truefalse 两个属性值,默认值是true 。通常无需修改该属性值。

struts.xslt.nocache

该属性指定XSLT Result 是否使用样式表缓存。当应用处于开发阶段时,该属性通常被设置为true ;当应用处于产品使用阶段时,该属性通常被设置为false

struts.configuration.files

该属性指定Struts 2 框架默认加载的配置文件,如果需要指定默认加载多个配置文件,则多个配置文件的文件名之间以英文逗号(, )隔开。该属性的默认值为struts-default.xml,struts-plugin.xml,struts.xml ,看到该属性值,读者应该明白为什么Struts 2 框架默认加载struts.xml 文件了。

程序员之家   http://www.sunxin.org

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值