struts2中常用constant命令配置方法
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 结合起来了。