让我先解释一下我在做什么:
我正在编写一个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;
}
答案 0 :(得分:1)
如果未执行操作,则表示您有验证错误。在验证方法完成时,如果有的话,验证拦截器返回Action.INPUT
结果。因此,您希望在这种情况下返回JSON。要返回JSON,您应该创建名为"input"
的结果并键入"json"
并将其添加到操作配置中。验证完成后,您可以使用validate()
方法自定义结果,将执行输入结果,如果是JSON类型,则返回JSON响应。