开始使用的是Struts2.06版本。在配置Struts.xml的时候,发现了一个问题:
struts.xml代码:
xml 代码
-
- "">
- <struts>
- <include file="struts-default.xml" />
- <package name="default" extends="struts-default">
-
- <interceptors>
- <interceptor-stack name="strutsStack">
- <interceptor-ref name="exception" />
- <interceptor-ref name="alias" />
- <interceptor-ref name="servlet-config" />
- <interceptor-ref name="prepare" />
- <interceptor-ref name="i18n" />
- <interceptor-ref name="chain" />
- <interceptor-ref name="debugging" />
- <interceptor-ref name="profiling" />
- <interceptor-ref name="scoped-model-driven" />
- <interceptor-ref name="model-driven" />
- <interceptor-ref name="fileUpload" />
- <interceptor-ref name="checkbox" />
- <interceptor-ref name="static-params" />
- <interceptor-ref name="params" />
-
- <interceptor-ref name="validation">
- <param name="excludeMethods">
- input,back,cancel,browse
- param>
- interceptor-ref>
- <interceptor-ref name="workflow">
- <param name="excludeMethods">
- input,back,cancel,browse
- param>
- interceptor-ref>
- interceptor-stack>
- interceptors>
-
- <default-interceptor-ref name="strutsStack" />
- package>
-
- <include file="struts_xml/user.xml" />
-
- struts>
这是struts.xml所包含的代码。
xml 代码
-
- "">
- <struts>
-
- <package name="user" extends="default">
-
- <action name="userAction"
- class="com.leo.controller.UserController" method="userAction">
- <result name="success">a.jspresult>
- <result name="input">login.jspresult>
- action>
-
- <action name="index" class="com.leo.controller.UserController"
- method="index">
- <result name="success">login.jspresult>
- <result name="input">login.jspresult>
- action>
-
- <action name="login" class="com.leo.controller.UserController"
- method="login">
- <result name="success" type="redirect-action">
- index.action
- result>
- <result name="input">login.jspresult>
- action>
-
- <action name="logout" class="com.leo.controller.UserController"
- method="logout">
- <result name="success">login.jspresult>
- <result name="input">login.jspresult>
- action>
-
- package>
-
- struts>
这种“包”继承关系是合法的,但在struts2.06版本怎么也无法通过,控制台一直报错:Error building results for action ××× in namespace - action 。调试了很久,Webwork文档与书也翻了N遍,还是没有效果。最后实在没有办法了,换成Struts2.09包,竟然通过了。
大家可以试试,其实Struts2的包继承是非常有用的,很多全局拦截器的设置,Action的设置,以及Result-type等,都可以通过包继承来组织你的配置文件。
阅读(1886) | 评论(0) | 转发(0) |