【发布时间】:2013-12-18 11:17:32
【问题描述】:
让我先解释一下我在做什么:
我正在编写一个 API,它在成功或失败时返回 JSON,并且在返回的 JSON 中有一个 status 变量,它让最终用户知道它在哪里是 success 或 failure。
现在,如果 API 需要提交一些参数,那么如果该参数是双精度且提交的值是字符串,那么我必须返回带有 status false 的 JSON,并在 errorlist 中返回错误消息。
默认情况下,介于两者之间的拦截器,未能将String 设置为某些Number 会返回Action.INPUT 结果而不执行操作方法。
我尝试使用@SkipValidation 注释该方法,但方法代码仍然没有执行,它直接从拦截器返回INPUT(我猜)。
默认情况下,我将状态定义为true,然后在操作方法中,根据条件,如果需要,我将其设置为 false,但由于现在该操作从未执行,因此返回的 JSON 响应具有status 为 true 且 errorlist 为空(因为该操作未执行,用于将错误添加到列表中)。
操作代码:
@SkipValidation
public String saveFund() {
//some code which is never executed when Double variable is a string
return SUCCESS;
}
正在使用的拦截器堆栈:
<interceptors>
<interceptor name="nlogin" class="interceptors.AdminInterceptor"/>
<interceptor-stack name="loginStack">
<interceptor-ref name="nlogin"/>
<!--<interceptor-ref name="store">-->
<!--<param name="operationMode">AUTOMATIC</param>-->
<!--</interceptor-ref>-->
<interceptor-ref name="defaultStack"/>
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="loginStack"/>
【问题讨论】:
-
至少发布一些代码。
-
@RomanC 添加了正在使用的动作和拦截器堆栈。
标签: java json configuration struts2 struts-validation