struts.objectFactory=spring
<constant name="objectFactory" value="spring"></constant>
不用写的,我现在就用的是SPRING+STURTS2.08+HIBERNATE,就没有写那写东西,运行正常,写了估计就不正常了

解决方案 »

  1.   

    实践证明,写与不写都正常,SPRING用的是2.0
      

  2.   

    写不写<constant name="objectFactory" value="spring"></constant>都会发生Error filterStart,yuanzhicai() 能不能把你的配置文件贴出来
      

  3.   

    <filter>
            <filter-name>struts2</filter-name>        
            <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
        </filter>
        <filter-mapping>
            <filter-name>struts2</filter-name>
            <url-pattern>/*</url-pattern>
        </filter-mapping>
        
        <filter>
    <filter-name>struts-cleanup</filter-name>
    <filter-class>org.apache.struts2.dispatcher.ActionContextCleanUp</filter-class>
    </filter>
    <filter-mapping>
    <filter-name>struts-cleanup</filter-name>
    <url-pattern>/*</url-pattern>
    </filter-mapping> 
        
        <listener>
            <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
        </listener>
       <servlet>
       web.xml<?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE struts PUBLIC
            "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
            "http://struts.apache.org/dtds/struts-2.0.dtd">
    <struts>

    <include file="struts-default.xml" />
    <include file="struts-interceptors.xml" />
    <include file="struts-channel.xml" />
    <include file="struts-class.xml" />
    <include file="struts-author.xml" />
    <include file="struts-news.xml" />
    <include file="struts-group.xml" />
    <include file="struts-user.xml" />
    <include file="struts-sys.xml" />
    <include file="struts-ad.xml" /> <package name="main" extends="struts-default"
    namespace="/Admin"> <action name="Login" class="com.lyf.util.Test" method="test">
    <result name="test" type="velocity">/index.vm</result>
    </action> <action name="HelloWorld" class="com.lyf.util.Test"
    method="test">
    <result name="test" type="velocity">index2.vm</result>
    </action> <action name="login" class="userAction" method="login">
    <result name="manage" type="velocity">
    /Admin/main.vm
    </result>
    <result name="login" type="velocity">
    /Admin/logins.vm
    </result>
    </action> <action name="WebMenu">
    <result type="velocity">/Admin/webMenu.vm</result>
    </action> <action name="indexc">
    <result type="velocity">/Admin/logins.vm</result>
    </action> <action name="error">
    <result type="velocity">/Admin/noPopedom.vm</result>
    </action> </package>
    <!--  package name="webs" extends="struts-default" namespace="/web">
    <action name="indexc" class="com.lyf.util.Test" method="test">
    <result name="test" type="velocity">/in.vm</result>
    </action>

    <action name="view" class="com.lyf.util.Test" method="view">
    <result name="view" type="velocity">/view.vm</result>
    </action>
    </package>

    <package name="error" extends="struts-default" namespace="/Error">
    <action name="error" ><result  type="velocity">/error.vm</result></action>
    </package-->
    </struts>
    struts.xml
      

  4.   

    ### START SNIPPET: complete_file### Struts default properties
    ###(can be overridden by a struts.properties file in the root of the classpath)
    ###### Specifies the Configuration used to configure Struts 
    ### one could extend org.apache.struts2.config.Configuration
    ### to build one's customize way of getting the configurations parameters into Struts
    # struts.configuration=org.apache.struts2.config.DefaultConfiguration### This can be used to set your default locale and encoding scheme
    # struts.locale=en_US
    struts.i18n.encoding=GBK### if specified, the default object factory can be overridden here
    ### Note: short-hand notation is supported in some cases, such as "spring"
    ###       Alternatively, you can provide a com.opensymphony.xwork2.ObjectFactory subclass name here  
    # struts.objectFactory = spring### specifies the autoWiring logic when using the SpringObjectFactory.
    ### valid values are: name, type, auto, and constructor (name is the default)
    struts.objectFactory.spring.autoWire = name### indicates to the struts-spring integration if Class instances should be cached
    ### this should, until a future Spring release makes it possible, be left as true
    ### unless you know exactly what you are doing!
    ### valid values are: true, false (true is the default)
    struts.objectFactory.spring.useClassCache = true### if specified, the default object type determiner can be overridden here
    ### Note: short-hand notation is supported in some cases, such as "tiger" or "notiger"
    ###       Alternatively, you can provide a com.opensymphony.xwork2.util.ObjectTypeDeterminer implementation name here
    ### Note: if you have the xwork-tiger.jar within your classpath, GenericsObjectTypeDeterminer is used by default
    ###       To disable tiger support use the "notiger" property value here.
    #struts.objectTypeDeterminer = tiger
    #struts.objectTypeDeterminer = notiger### Parser to handle HTTP POST requests, encoded using the MIME-type multipart/form-data
    # struts.multipart.parser=cos
    # struts.multipart.parser=pell
    struts.multipart.parser=jakarta
    # uses javax.servlet.context.tempdir by default
    struts.multipart.saveDir=
    struts.multipart.maxSize=2097152### Load custom property files (does not override struts.properties!)
    # struts.custom.properties=application,org/apache/struts2/extension/custom### How request URLs are mapped to and from actions
    #struts.mapper.class=org.apache.struts2.dispatcher.mapper.DefaultActionMapper### Used by the DefaultActionMapper
    ### You may provide a comma separated list, e.g. struts.action.extension=action,jnlp,do
    struts.action.extension=action### Used by FilterDispatcher
    ### If true then Struts serves static content from inside its jar. 
    ### If false then the static content must be available at <context_path>/struts
    struts.serve.static=true### Used by FilterDispatcher
    ### This is good for development where one wants changes to the static content be
    ### fetch on each request. 
    ### NOTE: This will only have effect if struts.serve.static=true
    ### If true -> Struts will write out header for static contents such that they will
    ###             be cached by web browsers (using Date, Cache-Content, Pragma, Expires)
    ###             headers).
    ### If false -> Struts will write out header for static contents such that they are
    ###            NOT to be cached by web browser (using Cache-Content, Pragma, Expires
    ###            headers)
    struts.serve.static.browserCache=true### Set this to false if you wish to disable implicit dynamic method invocation
    ### via the URL request. This includes URLs like foo!bar.action, as well as params
    ### like method:bar (but not action:foo). 
    ### An alternative to implicit dynamic method invocation is to use wildcard 
    ### mappings, such as <action name="*/*" method="{2}" class="actions.{1}">
    struts.enable.DynamicMethodInvocation = true### Set this to true if you wish to allow slashes in your action names.  If false,
    ### Actions names cannot have slashes, and will be accessible via any directory
    ### prefix.  This is the traditional behavior expected of WebWork applications.
    ### Setting to true is useful when you want to use wildcards and store values
    ### in the URL, to be extracted by wildcard patterns, such as 
    ### <action name="*/*" method="{2}" class="actions.{1}"> to match "/foo/edit" or 
    ### "/foo/save".
    struts.enable.SlashesInActionNames = false### use alternative syntax that requires %{} in most places
    ### to evaluate expressions for String attributes for tags
    struts.tag.altSyntax=true### when set to true, Struts will act much more friendly for developers. This
    ### includes:
    ### - struts.i18n.reload = true
    ### - struts.configuration.xml.reload = true
    ### - raising various debug or ignorable problems to errors
    ###   For example: normally a request to foo.action?someUnknownField=true should
    ###                be ignored (given that any value can come from the web and it
    ###                should not be trusted). However, during development, it may be
    ###                useful to know when these errors are happening and be told of
    ###                them right away.
    struts.devMode = true### when set to true, resource bundles will be reloaded on _every_ request.
    ### this is good during development, but should never be used in production
    struts.i18n.reload=true### Standard UI theme
    ### Change this to reflect which path should be used for JSP control tag templates by default
    struts.ui.theme=xhtml
    struts.ui.templateDir=template
    #sets the default template type. Either ftl, vm, or jsp
    struts.ui.templateSuffix=ftl### Configuration reloading
    ### This will cause the configuration to reload struts.xml when it is changed
    struts.configuration.xml.reload=true### Location of velocity.properties file.  defaults to velocity.properties
    struts.velocity.configfile = velocity.properties### Comma separated list of VelocityContext classnames to chain to the StrutsVelocityContext
    struts.velocity.contexts =### Location of the velocity toolbox
    struts.velocity.toolboxlocation=### used to build URLs, such as the UrlTag
    struts.url.http.port = 80
    struts.url.https.port = 443
    ### possible values are: none, get or all
    struts.url.includeParams = get### Load custom default resource bundles
    # struts.custom.i18n.resources=testmessages,testmessages2### workaround for some app servers that don't handle HttpServletRequest.getParameterMap()
    ### often used for WebLogic, Orion, and OC4J
    struts.dispatcher.parametersWorkaround = false### configure the Freeer Manager class to be used
    ### Allows user to plug-in customised Freeer Manager if necessary
    ### MUST extends off org.apache.struts2.views.freeer.FreeerManager
    #struts.freeer.manager.classname=org.apache.struts2.views.freeer.FreeerManager### See the StrutsBeanWrapper javadocs for more information
    struts.freeer.wrapper.altMap=true### configure the XSLTResult class to use stylesheet caching.
    ### Set to true for developers and false for production.
    struts.xslt.nocache=false### A list of configuration files automatically loaded by Struts
    struts.configuration.files=struts-default.xml,struts-plugin.xml,struts.xml### Whether to always select the namespace to be everything before the last slash or not
    struts.mapper.alwaysSelectFullNamespace=false### END SNIPPET: complete_file
      

  5.   

    如何将<action name="login" class="userAction" method="login">中的userAction交由spring控制呢,另外method指的是什么
      

  6.   

    晕到,好好看一下STRUTS2.0吧,你就知道了
      

  7.   

    filterStart的问题是web.xml的问题,不关struts2的问题,你看下tomcat/logs/下的文件,可以找到线索的。
      

  8.   

    楼上说的没错 
    filterStart的问题是tomcat启动时加载web.xml配置文件引起的问题,如果你在web.xml配置加载spring
    那么请检查spring配置文件是否有误,可以将配置文件的内容部分注释掉,从而查找具体是某个配置问题导致的
    当然出现这个问题,也有可能是jar包冲突引起的
      

  9.   

    必须添加
    struts2-spring-plugin
      

  10.   

    一般是由于缺包导致的,务必将struts2-spring-plugin包导入到CLASSPATH下。
      

  11.   

    stefli 和 shareanway 兄弟说的很正确,是由于加载的jar包不完整引起的错误
     鄙视yuanzhicai说的话,别人是来求教的,不是来让你数落的,如果你知道原因请告知后再批评
    csdn就是被这种人带坏的
      

  12.   

    配置里有没有加
    <init-param>
     <param-name>actionPackages</param-name>
     <param-value>XXXX.XXXX.XXXX</param-value>
    </init-param>
      

  13.   

    这个问题也郁闷了我N久...就是没有加struts2-spring-plugin.jar这个包的问题...
      

  14.   

    这个问题困扰了我,一个下午,终于解决,就没有加入struts2-spring-plugin.jar这个包啊!!
      

  15.   

    确实是没有加入struts2-spring-plugin.jar这个包啊!!
      

  16.   

    不是那个包的问题···我现在做了好多测试·发现如果配置struts2的拦截器·就不能加入spring和hibnate的包···如果加入了那些包就不能配置拦截器···我快疯了!!!还找不到解决方案··但是老师的那个项目却可以运行··我自己的就不得>_<
      

  17.   


    很有可能是JAR包之前的冲突。你试试一个包一个包的加,可能有效。