如何在struts2中的失败验证时返回自定义响应

时间:2013-12-18 11:17:33

标签: java json configuration struts2 struts-validation

让我先解释一下我在做什么:

我正在编写一个API,它会在成功或失败时返回JSON,并且返回的JSON中有一个status变量,这样最终用户就可以知道它是success还是{{1} }}

现在,如果API希望提交一些参数,那么如果该参数是双倍的&提交的值是一个字符串,然后我必须返回带有failure false的JSON和status中的错误消息。

默认情况下介于两者之间的拦截器,未能将errorlist设置为某些String而不执行操作方法会返回Number结果。

我尝试用Action.INPUT注释方法,但方法代码仍未执行,它会直接从拦截器返回INPUT(我猜)。

我默认情况下将状态定义为@SkipValidation然后在操作方法中,根据条件,如果需要,我将其设置为false,但由于现在从未执行操作,因此返回了JSON响应,状态为true且true为空(因为操作未执行,用于向列表添加错误)。

请帮忙。

行动代码:

errorlist

正在使用拦截器堆栈:

 @SkipValidation
    public String saveFund() {
          //some code which is never executed when Double variable is a string
    return SUCCESS;
}

1 个答案:

答案 0 :(得分:1)

如果未执行操作,则表示您有验证错误。在验证方法完成时,如果有的话,验证拦截器返回Action.INPUT结果。因此,您希望在这种情况下返回JSON。要返回JSON,您应该创建名为"input"的结果并键入"json"并将其添加到操作配置中。验证完成后,您可以使用validate()方法自定义结果,将执行输入结果,如果是JSON类型,则返回JSON响应。