Struts 1 — отправить строку

У меня возникла проблема с формой Struts 1, которая содержит логику: итерация, отвечающая за создание строк, каждая из которых имеет кнопку ввода. Проблема возникает, когда я нажимаю любую из этих кнопок отправки, динамические данные не публикуются должным образом, а форма не имеет этих значений, вот пример:

<html:form action="/myAction" styleClass="centeredForm"  style="display:inline" >
  <td class="formLabel">City</td>
  <td class="formControl">
    <bean:define id="cities" name="myForm"
                 property="cities" type="java.util.Collection"/>
    <html:select styleClass="dashSelect" property="city">
      <html:option value="">All Cities</html:option>
      <html:options collection="cities"
                    property="id" labelProperty="value"/>
    </html:select>
  </td>

  ... Other elements ...

  <logic:iterate id="myObject" name="myForm" property="myObjects" indexId="index" type="com.test.MyObject">
      <% String rowClass = index.intValue() % 2 == 0 ? "even-row" : "odd-row"; %>
    <tr class="<%=rowClass%>">
      <td class="result-cell"><bean:write name="myObject" property="id" />&nbsp;</td>
      <td class="result-cell"><bean:write name="myObject" property="name" />&nbsp;</td>
      <td class="result-cell">
        <html:select styleClass="dashSelect" name="myObject" property="status">
          <html:option value="F">Disabled</html:option>
          <html:option value="T">Enabled</html:option>
        </html:select>
      </td>

      <td>
        <html:submit/>
      </td>

Часть «город» и все остальное за пределами логики: итерация, отлично подходят для «myForm», но «myObject» - нет. Я даже пытался отправить это с помощью функции JavaScript, но не смог заставить ее работать должным образом. В настоящее время то, что у меня есть (тот html:submit, который я оставил в качестве ссылки), приводит к тому, что POST содержит набор параметров «статус» и правильные значения, о которых я упоминал ранее.

Кто-нибудь может пролить свет на это?

Дайте мне знать, если вам нужна дополнительная информация.

Заранее большое спасибо!


person LdSe    schedule 09.01.2012    source источник
comment
Не уверен, что вы имеете в виду; вы не используете теги indexed (см. здесь) или вложенные теги, ни создавать имена индексированных свойств вручную - хотя я не совсем понимаю, что не работает. (Похоже, что для некоторых тегов/бинов также требуется много дополнительных усилий; рассматривали ли вы возможность использования JSP EL или, по крайней мере, тегов EL Struts, если вы находитесь в устаревшем контейнере?)   -  person Dave Newton    schedule 10.01.2012
comment
Проблема в том, что когда я нажимаю «Отправить», в форме не заполняется myObject, который представляет собой информацию для каждой строки, которую я создаю с помощью логики: итерации. Тем временем я посмотрю на проиндексированные теги.   -  person LdSe    schedule 10.01.2012


Ответы (2)


Вместо того, чтобы использовать одну форму, я просто использовал форму внутри логики: итерация, добавил индексы к соответствующим свойствам и использовал функцию Javascript для получения остальных.

Спасибо!

person LdSe    schedule 11.01.2012

Логическая итерация: попробуйте сделать так. Возможно, вам это поможет.

<logic:iterate name="myForm" property="myObjects" id="myObjects" indexId="true">
  <tr>
   <td class="result-cell"><bean:write name="myObjects" property="id" />&nbsp;</td>
      <td class="result-cell"><bean:write name="myObjects" property="name"/>&nbsp;</td>
      <td>
        <html:submit/>
      </td>    
  </tr>
</logic:iterate>
person subodh    schedule 10.01.2012
comment
Здравствуйте, subodh, К сожалению, bean:write не имеет значений или индексированных атрибутов. :( Вы хотели использовать другой? Большое спасибо за ваш ответ! - person LdSe; 10.01.2012
comment
Ой!! Что произойдет, если вы не используете значение и индексированное свойство? Показывает ли это какую-либо ошибку или какой вывод? Смотрите мой ответ на обновление, попробуйте сделать это, и все же, если возникнут какие-либо проблемы, дайте мне знать. - person subodh; 11.01.2012