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-tp22463902p25187847.html
Sent from the Struts - Dev mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]