Я проверяю список объектов. Чтобы показать пользователям, что они набрали неправильно, мне нужно повторно заполнить поля при ошибке преобразования. Я читал, что для повторного заполнения значений полей на странице мне нужно сделать что-то вроде этого:
<s:textfield name="user.name" value="%{user.name}"/>
Для повторного заполнения массива я должен обращаться к ним через индексы. Как упоминалось здесь: обновить список значений в текстовом поле в struts2< /а>
У меня есть список пользователей, которых мне нужно проверить. У меня есть собственный счетчик индексов на итераторе по определенной причине.
<s:set name="counter" value="0"/>
<s:iterator value="users" var="user">
<s:textfield name="users[%{#counter}].birthdate" value="%{users[#counter].birthdate}"/>
<s:set name="counter" value ="%{#counter + 1}"/>
</s:iterator>
Я использую валидатор посетителей для объекта User.
<field name="birthdate">
<field-validator type="conversion">
<param name="repopulateField">true</param>
<message>${getText("E011", {"birthdate"})}</message>
</field-validator>
</field>
Как я уже сказал, я не использую счетчик индекса итератора по определенной причине.
Проблема в том, что эта часть value="%{users[#counter].birthdate}"
не работает. Если я изменю counter
на 0
, он повторно заполнит значение users[0].birthdate справа. Похоже, он не получает значение счетчика в выражении OGNL.
Я пробовал с:
value="%{users[counter].birthdate}"
value="%{users[%{#counter}].birthdate}"
...
and so on.
Может ли кто-нибудь помочь мне сделать эту работу?
ОБНОВЛЕНИЕ
В итоге я должен был упомянуть свой особый случай:
<s:iterator value="users" var="user" status="status">
<s:if test="#status.index != removeIndex">
Я обнаружил, что мне не нужно указывать значение для имени поля, чтобы оно повторно заполняло значения. Но мне нужно было использовать это из-за этой строки:
<s:if test="#status.index != removeIndex">
Мне потребуется много усилий, чтобы объяснить, почему вы меня неправильно поняли. Можем ли мы удалить этот пост? Спасибо
users.get(0).getBirthDay();
, что означает, что счетчика на самом деле нет. - person Umesh Awasthi   schedule 10.02.2012