`
xtel
  • 浏览: 21469 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

struts2中的constant介绍之struts.objectFactory与spring的整合

 
阅读更多

来自: http://hi.baidu.com/wtx521/blog/item/f4285a0318c2ad1f728da578.html

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 结合起来了。

分享到:
评论

相关推荐

    整合struts2和spring源代码(可以直接在tomcat中运行)

    Struts2与Spring的集成要用到Spring插件包struts2-spring-plugin-x-x-x.jar,这个包是同Struts2一起发布的。Spring插件是通过覆盖(override)Struts2的ObjectFactory来增强核心框架对象的创建。当创建一个对象的...

    Struts课堂笔记.rar--struts2的struts.properties配置文件详解

    struts.objectFactory.spring.useClassCache Whether Spring should use its class cache or not 是否spring应该使用自身的cache struts.objectTypeDeterminer The ...

    Struts2\constant应用

    &lt;constant name="struts.objectFactory" value="spring" /&gt; &lt;!-- 指定Web应用的默认编码集,相当于调用HttpServletRequest的setCharacterEncoding方法 --&gt; &lt;constant name="struts.i18n.encoding" value="UTF-8...

    解决struts2.1.6+spring+hibernate 中文乱码

    struts.objectFactory = spring struts.i18n.reload=true #struts.locale=zh_CN struts.i18n.encoding=GBK ) web.xml(仅写出中文处理部分,spring的配置不用改变) &lt;filter-name&gt;encodingFilter &lt;filter-class&gt;...

    java三大框架注解配置

    &lt;constant name="struts.objectFactory" value="org.apache.struts2.spring.StrutsSpringObjectFactory" /&gt; 修改struts默认的拦截: &lt;filter-name&gt;struts2 *.action *.jsp 2、添加hibernate功能 3、添加...

    Struts2属性文件详解

    struts.objectFactory.spring.autoWire 指定Spring框架的自动装配模式, 该属性的默认值是name, 即默认根据Bean的name属性自动装配. struts.objectFactory.spring.useClassCache 该属性指定整合Spring框架时,是否...

    Spring注解配置中间层供Struts2使用

    Spring注解配置中间层供Struts2使用 1.spring通过注解方式生成中间层 2.不使用Struts2的常量struts.objectFactory也可识别中间层

    struts 2.3.4.1 最新英文版API

    struts 2.3.4.1 最新英文版...com.opensymphony.xwork2.spring Spring ObjectFactory classes. com.opensymphony.xwork2.spring.interceptor Spring specific interceptor classes. com.opensymphony.xwork2.test ...

    ssh整合过程的注意点1

    Struts与Spring整合:在Struts中的配置重点&lt;constant name="struts.objectFactory" value="spring

    struts-2.1.6.chm

    com.opensymphony.xwork2 ...com.opensymphony.xwork2.spring Spring ObjectFactory classes. com.opensymphony.xwork2.spring.interceptor Spring specific interceptor classes. com.opensymphony.xwork2.test ...

    SSH第7章上机.zip ACCP8.0

    下面是整合的的步骤 spring整合hibernate 加入jar包 加入spring和aop所需必须包 加入hibernate的必须包 spring整合hibernate的必须包 ... &lt;constant name="struts.objectFactory" value="spring" /&gt;

    spring3.2+strut2+hibernate4

    &lt;constant name="struts.objectFactory" value="spring" /&gt; &lt;!-- 更改struts2请求Action的后缀名,默认为action。若想去掉后缀,设为","即可 --&gt; &lt;constant name="struts.action.extension" value=","/&gt; &lt;!-...

    ObjectFactory.java

    JAXB对package包下所有对象编组需要的ObjectFactory.java类

    Android+ssh项目综合实践

    在struts2插件文档里,这样写着“The Spring Plugin works by overriding the Struts ObjectFactory to enhance the creation of core framework objects。”这个插件重写了struts的对象工厂,当创建一个action类时...

    SPRING API 2.0.CHM

    ObjectFactory ObjectFactoryCreatingFactoryBean ObjectNameManager ObjectNamingStrategy ObjectOptimisticLockingFailureException ObjectRetrievalFailureException ObjectUtils OC4...

    struts 中文乱码问题解决

    struts 中文乱码问题解决

    Qt_ObjectFactory.zip

    Qt_ObjectFactory QT反射例子, 利用 ObjectFactory 模式创建对象,使用很方便,先注册再创建

    Spring杂谈 | 什么是ObjectFactory?什么是ObjectProvider?

    本来只是想将ApplicationContext的相关内容全部梳理一遍,结果发现涉及的东西越来越多,比如上篇文章中的ResolvableType,到这篇文章介绍的ObjectFactory跟ObjectProvider。不过想想也没办法,一步一步往前走呗,在...

    java client客户短调用WCF服务代码2

    netbeans写的java application客户端代码,调用带x509证书加密的WCF Service

    xerces解析xml

    xerces的安装与使用

Global site tag (gtag.js) - Google Analytics