Я новичок в стойках.У меня есть Form
, Action
и jsp view
.
<form-beans>
<form-bean name="bookEventForm" type="com.example.BookEventForm" />
</form-beans>
<action path="/bookEvent"
type="com.example.BookEventAction"
name="bookEventForm"
input="/WEB-INF/jsp/bookEvent.jsp"
scope="request">
<forward name="success" path="/WEB-INF/jsp/bookEvent.jsp" />
</action>
. Одним из свойств формы события является Country
, поэтому первое, что я делаю в Action
, это:
request.setAttribute("countries", countriesDao.getAll());
в представлении, которое я визуализирую для элемента select, используя:
<html:select property="..." >
<html:optionsCollection name="countries" ... />
</html:select>
Это прекрасно работает, пока я не добавлю ActionForm # validate для выполнения некоторых проверок валидации (не связанныхв страны, например, фамилия! = ноль).
По спецификации Struts, как только возникает ошибка, Action#execute
никогда не выполняется.Таким образом, коллекция countries
больше не находится в запросе, и представление отображается с пустым элементом select.
Я знаю, что, скорее всего, мне не хватает некоторой базовой концепции стоек.Друг предложил сделать дао доступным в представлении, чтобы я мог выбрать страны в любое время, но в целом я предпочитаю подготовить представление (предварительную выборку данных из базы данных) до того, как будет выполнен любой JSP-код.
Есть идеи?