欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

struts2中常用constant命令配置方法

程序员文章站 2024-03-13 15:12:45
struts.objectfactory这个属性用 于说明struts2的 对象池创建工厂,struts2也有自己的对象池,就像spring那样,在配置文件中你可以引用对象...

struts.objectfactory这个属性用 于说明struts2的 对象池创建工厂,struts2也有自己的对象池,就像spring那样,在配置文件中你可以引用对象池中的对象,你可以借助于spring中的对象池, 当想要得到spring中的对象池时,申明struts.objectfactory为spring的对象池构建工厂....

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,则可以在应用出错时显示更多、更友好的出错提示。该属性只接受true和flase两个值,该属性的 默认值是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。该属性还允许使用ftl、vm或jsp,分别对应freemarker、velocity和jsp模板。
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时是否包含请求参数。该属性接受none、get和all三个属性值,分别对应于不包含、仅包含get类型请求参数和包含全部请求参数。
struts.custom.i18n.resources该属性指定struts 2应用所需要的国际化资源文件,如果有多份国际化资源文件,则多个资源文件的文件名以英文逗号(,)隔开。
struts.dispatcher.parametersworkaround 对于某些java ee服务器,不支持httpservlet request调用getparametermap()方法,此时可以设置该属性值为true来解决该问题。该属性的默认值是false。对于weblogic、orion和oc4j服务器,通常应该设置该属性为true。
struts.freemarker.manager.classname 该属性指定struts 2使用的freemarker管理器。该属性的默认值是org.apache.struts2.views.freemarker.freemarkermanager,这是struts 2内建的freemarker管理器。
struts.freemarker.wrapper.altmap该属性只支持true和false两个属性值,默认值是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文件了。

详解struts2-plugin.xml中spring

<struts>
  <bean type="com.opensymphony.xwork2.objectfactory" name="spring" class="org.apache.struts2.spring.strutsspringobjectfactory" />
   
  <!-- make the spring object factory the automatic default -->
  <constant name="struts.objectfactory" value="spring" />
 
  <package name="spring-default">
    <interceptors>
      <interceptor name="autowiring" class="com.opensymphony.xwork2.spring.interceptor.actionautowiringinterceptor"/>
      <interceptor name="sessionautowiring" class="org.apache.struts2.spring.interceptor.sessioncontextautowiringinterceptor"/>
    </interceptors>
  </package>  
</struts

注意<constant name="struts.objectfactory" value="spring"/>

这里它将框架常量struts.objectfactory覆盖了,设置为”spring”,其实这里是使用了缩写,我们可以写全称:org.apache.struts2.spring.strutsspringobjectfactory。 这个缩写的”spring”是和bean配置中的name属性相对应的。默认情况下所有由框架创建的对象都是由objectfactory实例化 的,objectfactory提供了与其它ioc容器如spring、pico等集成的方法。覆盖这个objectfactory的类必须继承 objectfactory类或者它的任何子类,并且要带有一个不带参数的构造方法。在这里我们用 org.apache.struts2.spring.strutsspringobjectfactory代替了默认的objectfactory。

此外,上面我们说了,如果action不是使用spring objectfactory创建的话,插件提供了两个拦截器来自动装配action,默认情况下框架使用的自动装配策略是name,也就是说框架会去 spring中寻找与action属性名字相同的bean,可选的装配策略还有:type、auto、constructor,我们可以通过常量 struts.objectfactory.spring.autowire来进行设置。

这样的话,我们就可以在action中使用spring ioc中注入的bean了。其实这是webwork早有的扩展包里的功能。呵呵。换成strut2.0了还是得说一下。

有了上面的配置文件我们就可以把spring2.0 和 struts2.0 结合起来了。