2009-04-17 57 views
1

我使用Struts2的,对于我的struts.xml文件包含类似的代码:struts2.xml - 不能包含其他.xml文件

<?xml version="1.0" encoding="UTF-8" ?> 

<constant name="struts.enable.DynamicMethodInvocation" value="false" /> 
<constant name="struts.devMode" value="true" /> 

<include file="strutsAuthentication.xml"/> 

<package name="default" extends="struts-default"> 
    <interceptors> 
     <interceptor-stack name="crudStack"> 
      <interceptor-ref name="checkbox" /> 
      <interceptor-ref name="params" /> 
      <interceptor-ref name="static-params" /> 
      <interceptor-ref name="defaultStack" /> 
     </interceptor-stack> 
    </interceptors> 
</package> 

我已经在strutsAuthentication.xml中指定了所有必需的操作。这代码:

<struts> 
<package name="authentication" extends="default" namespace="/authentication"> 
    <action name="saveCountry" class="saveCountryAction"> 
     <interceptor-ref name="defaultStack" /> 
     <result name="success">/savecountry.jsp</result> 
     <result name="error">/error.jsp</result> 
    </action> 

</package> 

当我部署我的应用程序到Tomcat,它给了我警告说:

WARN(org.apache.struts2.components.Form:308) - 无找到指定操作的配置:名称空间中的'saveCountry':''。表单行为默认为“行为”属性的字面值。

这意味着struts.xml不能包含strutsAuthentication.xml。任何人都有解决方案?提前Thanx ...

回答

0

Got d解决方案....对于上述问题,我做了一个错误,从jsp页面调用动作。因此,在调用操作类时应该包括名称空间名称“身份验证”。最终的解决方案是:“authentication/saveCountry.action”。

0

作为补充说明。我们不应该在JSP页面中使用“xyz.action”。如果我们稍后需要或决定将.action中的url模式更改为.do或.html等,我们必须更改所有的JSP页面。更好的方法来组成链接是:

<a href="<s:url namespace="nsname" action="actionName" method="methodName"/>">Link Text</a>