I recently asked for some help on indexed properties and I still some
assistance. However, I made some progress in the understanding of the
issue. I traced the Struts source code to understand a little better why
I'm loosing collection date in between Struts actions.

I have a very simple JSP (not using struts-layout here since I wanted to
test the most simple example possible). It uses a 'signals' property of
a my form names 'strategyForm'. See below.

When I hit the validate button, I have lost the 'signals' property. I
debugged Strsts source files and I realized that the request does not
have the 'signals' parameter (RequestUtils.populate() which calls
BeanUtils.populate() ).

==> QUESTIONS 
- How do I make sure that an indexed property will be populated in the
form of a Struts action
- How to I make sure in the JSP file that the 'signals' property in the
HTML form ? Should I add a hidden field ? But how ?

Any response will be appreciated.

Below, you will find the entire JSP file and the relevant part of my
strategy form source code.

Thanks in advance for your help.

Fred


<html>
<head>
<title>Test Indexed property</title>
</head>
<body>
        
        <html:form action="/DisplayStrategy.do?reqCode=display">

                <html:text property="code" />
                <html:text property="label" />
                <html:hidden property="itemCount" />
                
                <table width="650" border="0" cellspacing="0" cellpadding="0">
                        <tr align="left">
                                <th>Order</th>
                                <th>Code</th>
                        </tr>
                        
                        <logic:iterate id="orderedSignal" name="strategyForm"
property="signals">
                                <tr align="left">
                                        <td>
                                                <bean:write name="orderedSignal" 
property="order"/>
                                        </td>
                                        <td>
                                                <bean:write name="orderedSignal" 
property="signal.code"/>
                                        </td>
                                </tr>
                        </logic:iterate>
                        
                        <html:submit>Validate</html:submit>
                        
                </table>        
                
        </html:form>

</body>
</html>

import com.rubis.web.system.OrderedSignalBean;

public class StrategyForm extends ValidatorActionForm implements
java.io.Serializable {
        
        public OrderedSignalBean getSignals(int index) {
                return signals[index];
        }
        public OrderedSignalBean[] getSignals() {
                return signals;
        }
        public void setSignals(int index, OrderedSignalBean signal) {
                signals[index] = signal;
        }
        public void setSignals(OrderedSignalBean[] array) {
                this.signals = array;
        }
        public String getCode() {
                return this.code;
        }
        public void setCode(String code) {
                this.code = code;
        }
        public String getLabel() {
                return this.label;
        }
        public void setLabel(String label) {
                this.label = label;
        }
        public void reset(ActionMapping mapping, HttpServletRequest request) {
                
                this.code               = null;
                this.label              = null;
                this.signals            = null;
        }       



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to