나는 struts 초보자입니다. 나는 Form
, Action
및 jsp view
입니다.struts 1.x에서 뷰를 준비하는 방법
<html:select property="..." >
<html:optionsCollection name="countries" ... />
</html:select>
: 뷰에서
request.setAttribute("countries", countriesDao.getAll());
내가 사용하는 select 요소를 렌더링 : 이벤트 양식의 특성
<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>
하나는 내가 Action
에서 할 첫 번째 일은이다 Country
입니다
ActionForm#validate을 추가하여 유효성 검사를 수행 할 때까지는 제대로 작동합니다 (예 : 성! = null).
오류가 발생하면 struts spec에 의해 Action#execute
이 실행되지 않습니다. 따라서 countries
컬렉션은 더 이상 요청에 포함되지 않으며 뷰는 비어있는 select 요소로 렌더링됩니다.
저는 스트럿츠의 핵심 개념이 빠져 있다는 것을 알고 있습니다. 친구가 뷰에서 DAO를 사용할 수 있도록 제안 했으므로 언제든지 국가를 가져올 수 있지만 JSP 코드가 실행되기 전에 일반적으로 뷰 준비 (DB 데이터 프리 페치)를 선호합니다.
아이디어가 있으십니까?
validate() 메소드에서로드하는 국가를 추가해도 작동하지만 레이어 및 MVC는 명백히 위반됩니다. – cherouvim