You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@struts.apache.org by Gadbury <ga...@googlemail.com> on 2009/08/28 14:41:59 UTC
Re: JSON plugin 0.33 and Struts 2.1.6 (integrated with Spring 2.5)
My apologies. For a Collection of objects, one must state which members of
the object in the list to include. For example, to retrieve every attribute
of the Product object:
products.*, productsTotal
...and one can select which attributes to include like so:
products.name, products.description, productsTotal
Credit goes to my colleague for figuring this out :) Hope this helps
others.
Cheers,
James
Gadbury wrote:
>
> Hi all,
>
> Does anyone have a solution to this? I have exactly the same problem.
> For example:
>
> <action name="ProductAction_*" method="{1}"
> class="jp1980.actions.ProductAction">
> <result name="list">/customer/products/list_ext.jsp</result>
> <result name="json_list" type="json">
> products, productsTotal
> </result>
> <result name="error">/error.jsp</result>
> <result name="success">/missing.jsp</result>
> </action>
>
> products is a List. If I specify products as the root, or specify no root
> or includeParams and return everything from my action, products is
> returned and populated fine in the JSON. However, if i use the
> includeParams as above, products is empty when I inspect the JSON.
>
> Thanks for reading and kind regards,
>
> James
>
>
> Gregory Slonim wrote:
>>
>> All,
>>
>> I am having a problem returning collections (or arrays) from struts
>> action as JSON. All collection-type data comes back empty (map, array,
>> etc).
>>
>> Setup:
>>
>> struts.xml
>>
>> <package name="json" extends="json-default">
>> <action name="getPayPlanGradesAjaxCall"
>> class="com.intellidyne.rms.action.accession.AccessionAction"
>> method="getPayPlanGradesAjaxCall">
>> <interceptor-ref name="json">
>> true
>> </interceptor-ref>
>>
>> <result type="json">
>> true
>>
>> dutyHours,
>> payPlanTypes
>>
>>
>> </result>
>> </action>
>> </package
>>
>> Action:
>>
>> public class AccessionAction extends BaseAction implements
>> ConversationScopeAware, ValidationAware
>> {
>> private static final long serialVersionUID = -1249579868850221888L;
>>
>> private String dutyHours;
>> private List<String> payPlanTypes;
>>
>> public String getDutyHours()
>> {
>> return dutyHours;
>> }
>>
>> public void setDutyHours(String dutyHours)
>> {
>> this.dutyHours = dutyHours;
>> }
>>
>> public final List<String> getPayPlanTypes()
>> {
>> return payPlanTypes;
>> }
>>
>> public final void setPayPlanTypes(List<String> payPlanTypes)
>> {
>> this.payPlanTypes = payPlanTypes;
>> }
>>
>> public String getPayPlanGradesAjaxCall()
>> {
>> dutyHours="12345";
>> payPlanTypes = new ArrayList<String>();
>> payPlanTypes.add("TEST1");
>> payPlanTypes.add("TEST2");
>> return SUCCESS;
>> }
>> }
>>
>> JSP:
>>
>> ......
>>
>> <button dojoType="dijit.form.Button"
>> label="TEST" value="Test">
>> <script type="dojo/method" event="onClick">
>> console.debug("Getting JSON DATA");
>> dojo.xhrGet ({
>> url: "getPayPlanGradesAjaxCall.html",
>> handleAs: "json",
>> load: function(response, ioArgs) {
>> console.debug("Returned from the call. Response is
>> "+response.dutyHours);
>> console.debug("Returned content: "+response.payPlanTypes);
>> return response;
>> }
>> });
>> </script>
>> </button>
>>
>> The button does not do anything besides making AJAX call. Here is the
>> response in FF Fbug:
>>
>> {"dutyHours":"12345","payPlanTypes":[]}
>>
>> Even if I use various dojo methods (such as dojo.toJson, etc) on
>> response object, the collection is still empty.
>> I used arrays, maps, whatever. It is still empty.
>>
>> The main problem I am trying to solve is how to populate one select
>> from something selected in another. (typical car makes/models scenario)
>>
>> Please advise, your help is greatly appreciated.
>>
>> Greg
>>
>>
>>
>>
>
>
--
View this message in context: http://www.nabble.com/JSON-plugin-0.33-and-Struts-2.1.6-%28integrated-with-Spring-2.5%29-tp22463902p25189224.html
Sent from the Struts - Dev mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@struts.apache.org
For additional commands, e-mail: dev-help@struts.apache.org