你能告诉我如何获取操作异常,将它们转换为 json 错误并将它们发送。我正在使用 strust2 jquery 插件来使用 ajax 验证我的表单。框架将通过定义sj:submit validate=true
和注释动作自动完成
<s:form action="login">
<s:textfield name="username" />
<s:textfield name="password" />
<sj:submit button="true" validate="true" />
</s:form>
动作是:
@Validations(requiredStrings =
{ @RequiredStringValidator(fieldName = "username", key = "validate.required"),
@RequiredStringValidator(fieldName = "password", key = "validate.required")}
public String confirm(){
service.canLogin(username,password)
}
可能会canLogin
抛出异常,例如。当它无法连接到数据库或shomething时。
要序列化我在下面添加的 excption:
<global-results>
<result name="error.core" type="json">
<param name="ignoreHierarchy">false</param>
<param name="includeProperties">
actionErrors\[\d+\], fieldErrors\..+$,actionMessages\[\d+\]</param>
</result>
</global-results>
当我提交包含无效数据的表单时,表单会正确验证。当出现异常时,页面不会序列化 json 结果。
在调试期间,我发现对服务器进行了两次 json 调用,其中一次调用:
- 所有表单数据
- struts.enableJSONValidation
- struts.validateOnly
一个只有所有的数据