全局结果视图和局部结果视图

HTTP Status 500 - Error building results for action action3 in namespace /n2
异常原因:action调用了别的包的局部结果视图
解释:
在包中配置的结果视图是只能在当前包或者子包中使用;
写在action内部的结果视图只能当前动作类使用;
解决方法:
1、在当前包中设置局部结果视图
<package name="p3" extends="struts-default">
<!-- 自定义结果类型 -->
<result-types>
<result-type name="captcha" class="com.java.web.action.CAPTCHAResult">
</result-type>
  </result-types>
<action name="captchaAction">
<result name="success" type="captcha">
<!-- 配置图像的大小 -->
<param name="width">480</param>
<param name="height">400</param>
</result>
</action>
  </package>
2、将包设置为抽象的,让其他类继承它,那么其他包的类即为当前包类的子类,那么就可以调用这个包的结果视图,即为全局视图。
<package name="myDefault" extends="struts-default" abstract="true">
<!-- 自定义结果类型,在包中配置结果视图,其子类或者当前类可以使用 -->
<result-types>
<result-type name="captcha" class="com.java.web.action.CAPTCHAResult">
</result-type>
</result-types>
<global-results><!-- 全局结果视图 ,查找顺序:先查找自己的动作类,再查找全局的结果视图-->
<result name="success" type="captcha">
<!-- 配置图像的大小 -->
<param name="width">480</param>
<param name="height">400</param>
</result>
</global-results>
</package> 

猜你喜欢

转载自blog.csdn.net/zpr5554321/article/details/79341927