今天一直在琢磨到底是哪里出的问题。我本来打算抛出Exception,然后让Exception拦截器捕获他并映射到一个jsp页面,但是logs里面总提示有错误,找了半天,结果发现
<action name="load"><result>/jsp/loadImage/image.jsp</result></action>
<action name="update" class="com.yuxuan.updateImage">
<param name="path">C:/jsp/loadImage/image</param>
<result>/jsp/loadImage/success.jsp</result>
<result name="input">/jsp/loadImage/image.jsp</result>
</action>
<global-results>
<result name="error">/jsp/error.jsp</result>
</global-results>
<global-exception-mappings>
<exception-mapping exception="java.lang.Exception" result="error"/>
</global-exception-mappings>
<action name="makeError" class="com.yuxuan.error"></action>
是因为package内容的顺序出错了。。。第一次知道里面的内容还是要有顺序的。。。
元素类型为 "package" 的内容必须匹配 "(result-types?,interceptors?,default-interceptor-ref?,default-action-ref?,default-class-ref?,global-results?,global-exception-mappings?,action*)"。 - file:/C:/tomcat6/webapps/hello/WEB-INF/classes/com/yuxuan/aa.xml:31:12
于是我更改了内容的顺序,如下:
<global-results>
<result name="error">/jsp/error.jsp</result>
</global-results>
<global-exception-mappings>
<exception-mapping exception="java.lang.Exception" result="error"/>
</global-exception-mappings>
<action name="makeError" class="com.yuxuan.error"></action>
<action name="load"><result>/jsp/loadImage/image.jsp</result></action>
<action name="update" class="com.yuxuan.updateImage">
<param name="path">C:/jsp/loadImage/image</param>
<result>/jsp/loadImage/success.jsp</result>
<result name="input">/jsp/loadImage/image.jsp</result>
</action>
结果就调试成功了!