Please ask this question on the struts-user mailing list. The struts-dev
list is for the development of Struts itself.
http://struts.apache.org/mail.html
Thanks,
Dave
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
>>
>>
>>
>>
>
---------------------------------------------------------------------
To unsubscribe, e-mail:
dev-unsubscribe@stru...
For additional commands, e-mail:
dev-help@stru...
opensubscriber is not affiliated with the authors of this message nor responsible for its content.