Struts2 redirectAction转向时默认加pass的问题

项目中要转发action,我就用

Xml代码 
  1. <result name="success" type="redirectAction">my.action</result>  

 


但是今天再用的时候发现一个莫名其名的问题,程序转向了一个不存在的url,如下: 
原来应该是这样的:http://localhost:8080/focus/account/my.action 
其中focus,是项目名,就是上下文路径,account是命名空间,my.action是我的action。 
这样才是对的,可是今天的url却是http://localhost:8080/focus/pass/account/my.action!pass 
由于根本不存在这样的url,就提示404错误。。 

 

调试了很久才发现是加入了JCR170的问题,jcr170的bean文件不愤如下:

 

Xml代码 
  1. <bean id="jcrSessionFactory" class="org.springmodules.jcr.JcrSessionFactory">  
  2.         <property name="repository" ref="repository"/>  
  3.         <property name="credentials">  
  4.             <bean class="javax.jcr.SimpleCredentials">  
  5.                 <constructor-arg index="0" value="bogus"/>  
  6.                 <!-- create the credentials using a bean factory -->  
  7.                 <constructor-arg index="1">  
  8.                     <bean factory-bean="password"  
  9.                           factory-method="toCharArray"/>  
  10.                 </constructor-arg>  
  11.             </bean>  
  12.         </property>  
  13.         <!-- register some bogus namespaces -->  
  14.         <!--   
  15.         <property name="namespaces">  
  16.             <props>  
  17.                 <prop key="foo">http://bar.com/jcr</prop>  
  18.                 <prop key="hocus">http://pocus.com/jcr</prop>  
  19.             </props>  
  20.         </property>  
  21.         -->  
  22.         <!-- register a simple listener   
  23.         <property name="eventListeners">  
  24.             <list>  
  25.                 <bean class="org.springmodules.jcr.EventListenerDefinition">  
  26.                     <property name="listener">  
  27.                         <bean class="org.springmodules.examples.jcr.DummyEventListener"/>  
  28.                     </property>  
  29.                 </bean>  
  30.             </list>  
  31.         </property>  
  32.         -->  
  33.     </bean>  
  34. <!-- create the password to return it as a char[] -->  
  35.     <bean id="password" class="java.lang.String">  
  36.         <constructor-arg index="0" value="pass"/>  
  37.     </bean>  

上面就是关键代码,id为password的值是pass,就是他跑到struts2的redirectAction里面!
目前具体原因不明,不过有解决方法,就是把
  1. <!-- create the password to return it as a char[] -->  
  2.     <bean id="password" class="java.lang.String">  
  3.         <constructor-arg index="0" value="pass"/>  
  4.     </bean>  
注释掉,然后修改:
  1.  <constructor-arg index="1">  
  2.                     <bean factory-bean="password"  
  3.                           factory-method="toCharArray"/>  
  4.                 </constructor-arg>  
为:
  1.  <constructor-arg index="1" value="pass"/>   
就行了!!如果有知道原因的说一下,感激不尽!!

 

你可能感兴趣的:(bean,xml)