Java 如何使用AJAX将ActionErrors、FieldErrors返回为JSON并在表单上显示错误
我想知道是否有人能对以下内容提出一些想法 获取了一个带有Java 如何使用AJAX将ActionErrors、FieldErrors返回为JSON并在表单上显示错误,java,json,validation,struts2,liferay,Java,Json,Validation,Struts2,Liferay,我想知道是否有人能对以下内容提出一些想法 获取了一个带有validate()方法的操作类,该方法在验证失败时返回带有actionErrors,fieldErrors的输入JSP 我只想获取验证错误(JSON数据?),并在现有页面上显示错误并突出显示字段,而不是用新的响应JSP刷新整个JSP 客户端使用JQuery,Struts2作为MVC框架,Liferay作为门户服务器 以下是我尝试的代码: public void validate(){ setActionErrors(validateDat
validate()
方法的操作类,该方法在验证失败时返回带有actionErrors
,fieldErrors
的输入JSP
我只想获取验证错误(JSON数据?),并在现有页面上显示错误并突出显示字段,而不是用新的响应JSP刷新整个JSP
客户端使用JQuery,Struts2作为MVC框架,Liferay作为门户服务器
以下是我尝试的代码:
public void validate(){
setActionErrors(validateData(this));
}
struts.xml:
/jsp/addDataAsync.jsp
JSP:
Js:
jQuery.ajax({
键入:“POST”,
url:“”,
数据:jQuery(“#form”).serialize(),
数据类型:“json”,
成功:功能(数据){
警报(“数据”+数据);
}
});
在执行验证方法之后。该流正在执行action类的默认方法,即使在errorlist中添加了错误并通过setActionErrors()
方法进行设置时也是如此。当拦截器和调用方法被调用时,我可以看到resultcode:as“input”
和result:as“jsonresult”
非常感谢您在这个问题上提供的帮助。您可以将
输入结果配置为json
类型的操作,并使用includeProperties
参数指定生成的json
<result name="input" type="json">
<param name="ignoreHierarchy">false</param>
<param name="includeProperties">^actionErrors\[\d+\],^fieldErrors\['\w+'\]\[\d+\]</param>
</result>
假的
^actionErrors\[\d+\],^fieldErrors\['\w+'\]\[\d+\]
action类应该扩展ActionSupport
,因此这些属性将可用。您可以像其他任何字段一样公开操作错误;请查看文档。以下操作已成功:fieldErrors,但我希望同时执行操作和字段错误,我尝试了,^actionErrors[\d+]\.*,^fieldErrors['\w+']\.*未成功,重新创建日志:obj{“errors”:{}