我做的是一个上传图片的模块,uploadImgAction处理上传信息,上传功能实现后,加入了fileUpload拦截器,拦截器拦截后,我想先到一个getOrderDetailsAction取得数据后再返回到提交页面createOrder.jsp,这两个action用chain连接,但配置后,始终直接到createOrder.jsp页面,没有经过getOrderDetailsAction,下面是struts.xml,请高手帮我看下。<package name="loginAction" extends="struts-default">
     <interceptors>
<interceptor-stack name="uploadImg">
<interceptor-ref name="logger"></interceptor-ref>
<interceptor-ref name="token"></interceptor-ref>
<interceptor-ref name="fileUpload">
<!-- 设置允许上传文件的类型 -->
         <param name="allowedTypes">
         *image/bmp,image/png,image/gif,image/jpeg,image/jpg ,image/x-png, image/pjpeg
         </param>
         <!-- 设置允许上传文件的大小为200k -->
         <param name="maximumSize">204800</param>
</interceptor-ref>
<interceptor-ref name="defaultStack"/>
</interceptor-stack>
</interceptors>
        
        <action name="getOrderDetailsAction" class="com.bbh.struts.orders.GetOrderDetailsAction">
            <result name="success">/pages/qiantai/createOrder.jsp</result>
            <result name="input">/pages/qiantai/createOrder.jsp</result>
        </action>
        <action name="uploadImgAction" class="com.bbh.struts.orders.UploadImgAction">
         <interceptor-ref name="uploadImg"></interceptor-ref>
            <result name="success">/pages/qiantai/createOrder.jsp</result>
            <result name="input" type="chain">getOrderDetailsAction</result>
            <!-- 返回支付页面 -->
            <result name="pay">/pages/qiantai/pay.jsp</result>
            <result name="invalid.token">/pages/qiantai/token.jsp</result>
        </action>
    </package>麻烦各位了!

解决方案 »

  1.   

    把type="chain"换成type="redirectAction"试试
      

  2.   

    1楼,那样的话只是直接到getOrderDetailsAction了,fileUpload拦截器的错误信息就没了,谢谢你的关注。
      

  3.   

    可能是你的uploadImgAction总是返回success
      

  4.   

    我忘记说了,我说的这种情况是上传的图片不合格,被拦截后的情况,这种情况下是从uploadImgAction的input返回的,但还是到不了getOrderDetailsAction
      

  5.   

    可以参考这个:http://blog.csdn.net/sabuhaha/archive/2009/06/04/4242849.aspx其核心问题就是在struts.xml配置文件文件必须加上两个拦截器,chain和basicStack。