Solved

submit a LIST in struts

Posted on 2007-04-02
6
1,261 Views
Last Modified: 2008-02-01
Hello Experts,

I'm programming JSP with Apache Struts and I haven't been able to find the way to submit a List property of the form to the next JSP

My case is the following:

I have a JSP (agentInteractions.jsp) where data is modified, this jsp is popoulated with a List property with the following code:

  <c:forEach items="${immunizationScheduleForm.agentInteractionsList}" var="agentList">
    <tr>
    <td align="center" class="lightgray">
       <html:radio name="agentList" property="interactionAgentKey" value="true"/>
    </td>
    <td align="left" class="lightgray">
      <html:select name="agentList" property="ruleCode">      
        <html:option value="1"><bean:write name="agentList" property="ruleDesc"/></html:option>      
     </html:select>
    </td>
    <td align="left" class="lightgray">
       <html:select name="agentList" property="ruleCode">
          <html:option value="1"><bean:write ame="agentList"property="interactionAgentDesc"/></html:option>
      </html:select>      
    </td>
    <td align="left" class="lightgray">
        <html:select name="agentList" property="interval">
           <html:option value="1"><bean:write name="agentList" property="interval"/></html:option>
        </html:select>&nbsp;      
        <html:select name="agentList" property="intervalUnits">
             <html:option value="1"><bean:write name="agentList" property="intervalUnitsDesc"/></html:option>
        </html:select>      
      </td>
    </tr>
  </c:forEach>

this jsp will go to the corresponding action, but when I get there, data from {immunizationScheduleForm.agentInteractionsList is NULL

I already tried to submit this property thru a hidden field (<html:hidden name="immunizationScheduleForm" property="agentInteractionsList " ?> but I get an error

I believe probably there's an special way to submit list property's

Thanks for your help. Urgent
0
Comment
Question by:mnateras
  • 2
  • 2
6 Comments
 
LVL 16

Expert Comment

by:suprapto45
Comment Utility
Could you pass your entire JSP with the corresponding ActionForm here?

Additionally, you are naming all the select boxes with the same name i.e. agentList.

        <html:select name="agentList" property="interval">
           <html:option value="1"><bean:write name="agentList" property="interval"/></html:option>
        </html:select>&nbsp;      
        <html:select name="agentList" property="intervalUnits">
             <html:option value="1"><bean:write name="agentList" property="intervalUnitsDesc"/></html:option>
        </html:select>    

David
0
 

Author Comment

by:mnateras
Comment Utility
Thanks, I have found out a way to do it
for Each field in the List, I mapped a corresponding String[] property in the FormBean

ex:
List listVar;
   imagine list with 2 fields: field1, field2

we add the following propertys in the FormBean (ActionForm)
  String[] listField1
  String[] listField2

on the .jsp I mapped the fields
  <c:forEach items="${formBean.listVar}" var="listName">
    <html:select name="FormBean" property="listField1">
    ......
    <html:select name="FormBean" property="listField2">
    .......

And I get those arrarys populated with all the <select> values in the Action Class

Regards,
0
 
LVL 16

Expert Comment

by:suprapto45
Comment Utility
Glad that you solved it by your own.

Shall I ask the page editor to remove this question and refund the points back to you?

David
0
 

Author Comment

by:mnateras
Comment Utility
I have antoher issue regarding this same matter.
I have succesfully send all the values selected to the corresponding action.
Now I've been strugling populating the <html:select> with the corresponding values retrieved.
The situation is as follows:
I have all the values set in the corresponding arrays, which are
* scheduleAgentKey
* interactionAgentKey

My jsp is as follows
  <c:forEach items="${immunizationScheduleForm.agentInteractionsList}" var="agentList">
      <tr>
    <td align="left" class="lightgray">      
       <c:out value='${agentList.scheduleAgentKey}' />      
       <html:select name="immunizationScheduleForm" property="scheduleAgentKey" value="">      
                  <html:option value="1">scheduleAgent 1</html:option>
                  <html:option value="2">scheduleAgent 2</html:option      
            </html:select>
      </td>
    <td align="left" class="lightgray">
            <html:select name="immunizationScheduleForm" property="ruleCode">      
                  <html:option value="1">ruleCode 1</html:option>      
                  <html:option value="2">ruleCode 2</html:option>      
            </html:select>
      </td>
</c:forEach

I have found out that if i'm able to put the value I want to be selected in the <html:select value="valueToBeSelected"> it will work, but know the problem is:

HOW do I escape the value of agentList.scheduleAgentKey to this value property?

I already tried this
<html:select name="immunizationScheduleForm" property="scheduleAgentKey" value="${agentList.scheduleAgentKey} ">

And values were no selected properly (it just select the default value)

I already <c:out value="${agentList.scheduleAgentKey} "/> and the value is printed, but some how is not escaped in the select tag

Please help!!!
0
 
LVL 1

Accepted Solution

by:
Computer101 earned 0 total points
Comment Utility
PAQed with points refunded (500)

Computer101
EE Admin
0

Featured Post

How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

Join & Write a Comment

Suggested Solutions

Describes a method of obtaining an object variable to an already running instance of Microsoft Access so that it can be controlled via automation.
In this article, you will read about the trends across the human resources departments for the upcoming year. Some of them include improving employee experience, adopting new technologies, using HR software to its full extent, and integrating artifi…
Access reports are powerful and flexible. Learn how to create a query and then a grouped report using the wizard. Modify the report design after the wizard is done to make it look better. There will be another video to explain how to put the final p…
This video shows how to remove a single email address from the Outlook 2010 Auto Suggestion memory. NOTE: For Outlook 2016 and 2013 perform the exact same steps. Open a new email: Click the New email button in Outlook. Start typing the address: …

772 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

12 Experts available now in Live!

Get 1:1 Help Now