你的位置:首页 > Java教程

[Java教程]SSH输入错误Action


在类型转化、输入验证校验 、文件上传等出错的时候,如Action中某个变量是int,而上传的值是"ABC",此时Action不会执行execute()函数,而是直接返回result name="input",如果没有定义result name="input"跳转的Action,就会报错误。可以自己定义一个Action,遇到此类情况时返回自己定义的信息。

首先定义输入错误Action类:

@SuppressWarnings("serial")public class InputErrorAction extends ActionSupport {      public String execute(){        int status;    Map<String, Object> map = new HashMap<String, Object>();    status = -1001;    map.put("Status", status);    map.put("Desc", "输入错误未通过验证");        // 返回结果    try{            ResUtil.toJson(ServletActionContext.getResponse(), map);    }catch (IOException e){      e.printStackTrace();    }        return null;  }}

在applicationContext.

  <!-- 输入错误 -->  <bean id="inputErrorAction" class="com.xkssh.action.InputErrorAction">  </bean>

在struts中定义一个Action:

    <!-- 输入错误未通过验证 -->    <action name="input_error" class="inputErrorAction">    </action>

为其他Action定义result name="input"时跳转的Action:

    <action name="xkgwc_delete" class="xkgwcDeleteAction">      <result name="success"/>      <result name="input" type="redirectAction">         <param name="actionName">input_error</param>       </result>    </action>

这样,当发生输入错误时,就会返回自己定义的信息: