Hi all,

I have a dynamic form where the user can set a dynamic number of passengers.
The html looks like:

<table jwcid="@For"
                                  source="ognl:passengerList"
                                  value="ognl:currentPassengerId"
                                  width="100%"
                                  border="0">
                                  <span jwcid="updatePassenger"/>
                             <tr class="GeneralStrText">
                               <td>Title</td>
                               <td>Name</td>
                               <td>Surname</td>
                               <td>Age</td>
                             </tr>
                             <tr>
                               <td>
                                 <input jwcid="[EMAIL PROTECTED]"
                                        value="ognl:currentPassenger.name"
                                        type="text"
                                        class="textField"
                                        maxlength="40"
                                        size="26"/>
                                 &nbsp;
                               </td>
                               <td>
                                 <input jwcid="[EMAIL PROTECTED]"
                                        value="ognl:currentPassenger.surname
"
                                        type="text"
                                        class="textField"
                                        maxlength="40"
                                        size="26"/>
                                 &nbsp;
                               </td>
                             </tr>
                         </table>
                       </td>
                     </tr>
                   </table>

The updatePassenger is an InvokeListener that executes this code:

public void updatePassenger(IRequestCycle cycle) {
if (cycle.isRewinding()) {

setCurrentPassenger(getPassengerManager().getPassengerById(getCurrentPassengerId()));
            getPassengerManager().savePassenger(getCurrentPassenger());
} else {
            Passenger passenger =
getPassengerManager().getPassengerById(getCurrentPassengerId());
            setCurrentPassenger(passenger);
        }
    }
(The idea is that in the beginning I retrieve every Passenger's data from
the database and when the form is rewinding I store them in the database
again)

The getPassengerManager() is a class responsible for handling the Passenger
objects, based on hibernate. The savePassenger function is:

public void savePassenger(Passenger passenger) throws DataAccessException {
        try {
            getSession().saveOrUpdate(passenger);
        } catch (HibernateException e) {
            e.printStackTrace(); //nkons debug
            throw convertHibernateAccessException(e);
        }
    }

The problem is that when the user submits the form in which all these are
contained, the savePassenger is called (as it should) but nor does it update
the passengers or throw an exception. What am I doing wrong?

The thing is that in the list with passengers, I am keeping the Ids of the
passengers, not the full Passenger Object, because the DataSqueezer produced
long strings that (I believe) caused some random problems in submission:
blank screens or no reaction.

I am using Tapestry 4.1.3. Any help would be really appreciated. Thank you
in advance,

Grigoris

Reply via email to