struts-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From JOSE L MARTINEZ-AVIAL <jlm...@gmail.com>
Subject Re: Struts2 json-plugin - issue setting nested bean?
Date Tue, 28 Oct 2014 23:45:07 GMT
Unless you use the json inteceptor to map the request boy to the action,
you need to send the contact firstName as "contact.firstName", so Struts
will invoke

setContact(new Contcat());
getContact().setFirstName("John");

-- JSON TEST SUBMISSION --
$.ajax({
  ... other ajax settings ...
 // manually insert data for testing
 data    : {"testValue":"yes","contact.firstName":"John","contactId":100},
});



2014-10-28 18:19 GMT-04:00 Burton Rhodes <burtonrhodes@gmail.com>:

> I am having issues setting nested parameters on an object using the
> json-plugin.  I've created a basic example that I'm currently testing.
> When debugging at the "return SUCCESS" line, both the testValue and
> contactId variables are set correctly.  The contact variable, however, is
> null.  The relevant console lines line is "WARN : Parameter
> [contact[firstName]] didn't match acceptedPattern pattern!" - but I'm not
> sure how to fix that as it *should* match the setContact() setter in my
> Action.  Any thoughts on what is going on here?  Thanks in advance....
>
> -- ACTION --
> public class ContactJsonAction {
>
>     private Integer contactId;
>     private Contact contact;
>     private String testValue;
>
>     public String contactUpdate() throws Exception {
>             return SUCCESS;
>     }
>
>    // Getters & Setters below....
> }
>
> -- JSON TEST SUBMISSION --
> $.ajax({
>   ... other ajax settings ...
>  // manually insert data for testing
>  data    : {"testValue":"yes","contact":{"firstName":"John"
> },"contactId":100},
> });
>
> -- LOGS --
> DEBUG: Creating an DefaultActionProxy for namespace [/app/json] and action
> name [ContactDetail_update]
> Oct 28, 17:15:34 (CommonsLogger.java:72)
> DEBUG: cannot find method [prepareContactUpdate] in action
> [com.afs.web.action.json.ContactJsonAction@b7a6ee]
> Oct 28, 17:15:34 (CommonsLogger.java:72)
> DEBUG: cannot find method [prepareDoContactUpdate] in action
> [com.afs.web.action.json.ContactJsonAction@b7a6ee]
> Oct 28, 17:15:34 (CommonsLogger.java:72)
> DEBUG: Setting params NONE
> Oct 28, 17:15:34 (CommonsLogger.java:72)
> DEBUG: Setting params testValue => [ yes ] contact[firstName] => [ Bean ]
> contactId => [ 100 ]
> Oct 28, 17:15:34 (CommonsLogger.java:72)
> DEBUG: Parameter [contactId] was accepted and will be appended to action!
> Oct 28, 17:15:34 (CommonsLogger.java:56)
> WARN : Parameter [contact[firstName]] didn't match acceptedPattern pattern!
> Oct 28, 17:15:34 (CommonsLogger.java:72)
> DEBUG: Parameter [testValue] was accepted and will be appended to action!
> Oct 28, 17:15:34 (CommonsLogger.java:76)
> DEBUG: Retrieving convert for class [class
> com.afs.web.action.json.ContactJsonAction] and property [contactId]
> Oct 28, 17:15:34 (CommonsLogger.java:72)
> DEBUG: field-level type converter for property [contactId] = none found
> Oct 28, 17:15:34 (CommonsLogger.java:72)
> DEBUG: global-level type converter for property [contactId] =
> com.afs.web.converter.MyNumberConverter@1611a05
> Oct 28, 17:15:34 (CommonsLogger.java:76)
> DEBUG: Retrieving convert for class [class
> com.afs.web.action.json.ContactJsonAction] and property [testValue]
> Oct 28, 17:15:34 (CommonsLogger.java:72)
> DEBUG: field-level type converter for property [testValue] = none found
> Oct 28, 17:15:34 (CommonsLogger.java:72)
> DEBUG: global-level type converter for property [testValue] = none found
> Oct 28, 17:15:34 (CommonsLogger.java:72)
> DEBUG: falling back to default type converter
> [com.opensymphony.xwork2.conversion.impl.XWorkBasicConverter@a5eac1]
> Oct 28, 17:15:34 (CommonsLogger.java:72)
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message