[ https://issues.apache.org/jira/browse/WW-3954?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13541142#comment-13541142 ] COMBEAU commented on WW-3954: ----------------------------- oh really ? before it was a bug and I have developed my application based on this bug ? .... :( In my case, actually, when success directive is called I return some information via JSON (for example: client number, product, etc...) but how could I check if there are validation errors in my form ? How could I make the difference between errors returned by the jsonValidation and the private var that I return throw json when I called the action to validate my form ? Could you tell me possibilities to do that ? please Thank you very much > Ajax Validation is broken (json) > -------------------------------- > > Key: WW-3954 > URL: https://issues.apache.org/jira/browse/WW-3954 > Project: Struts 2 > Issue Type: Bug > Components: Plugin - JSON > Affects Versions: 2.3.1, 2.3.1.1, 2.3.1.2, 2.3.3, 2.3.4, 2.3.4.1 > Environment: Struts 2.3.4.1, Jquery 1.3.1, Struts json plugin 2.3.4.1 > Reporter: COMBEAU > Assignee: Lukasz Lenart > Priority: Minor > Fix For: 2.3.9 > > Attachments: testAjaxValidation.zip > > > Hello, > I have find an issue on Struts 2.3.4.1. I have made a migration from Struts 2.1.8 to Struts 2.3.4.1 and I have seen that the Ajax Validation doesn't work anymore. > Moreover, when I would like to make the validation of my form in Ajax I seen that response was already "success" even if one or more fields are in errors. I think it's not normal. In Struts 2.1.8 when fields are in errors the response of an Ajax call is "error" not "success" > To correct this issue I have made a workaround. In the JSONValidationInterceptor, if the buildResponse method have "/*" in the first append and "*/" in the last it correct the problem... > why this : > {code:java} > protected String buildResponse(ValidationAware validationAware) { > //should we use FreeMarker here? > StringBuilder sb = new StringBuilder(); > sb.append("/* { "); > ... > sb.append("} */"); > /*response should be something like: > * { > * "errors": ["this", "that"], > * "fieldErrors": { > * field1: "this", > * field2: "that" > * } > * } > */ > return sb.toString(); > } > {code} > as been replaced by this : > {code:java} > protected String buildResponse(ValidationAware validationAware) { > //should we use FreeMarker here? > StringBuilder sb = new StringBuilder(); > sb.append("{ "); > *** > sb.append("}"); > /*response should be something like: > * { > * "errors": ["this", "that"], > * "fieldErrors": { > * field1: "this", > * field2: "that" > * } > * } > */ > return sb.toString(); > } > {code} > Is this a real issue ? -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira