2010-07-31 10 views
0

형성하는 등으로부터 : 선택 여부에 대한기본 초기화 내가 만든

MyForm extend ActionForm{ 

    list<Menu> MenuList=null; 

    MyForm(){ 

    super(); 

    setMenuList(); //initialize menu list 

    } 

} 

메뉴 객체가 문자열 desciption 및 부울 변수가 있습니다.

웹 페이지에서 모든 부울 변수에 대한 모든 메뉴와 확인란을 표시하도록 목록을 반복합니다. 그러나 목록은 선택한 항목에 액세스 할 때마다 기본값으로 설정됩니다. 그 때문에 생성자, 나는 ????? 제발 도와주세요 얘들 아 ??

변수를 초기화하는 다른 방법이 있습니까? 또한 getter 함수에서 목록을 초기화하려고했지만 null 포인터 예외가 발생합니다. 나는 왜 그렇게 이해할 수조차 없었다.

답변

1

Prepare interceptor을 확인하십시오.

는 위의 예에서
public class MyForm extend ActionForm implement Preparable { 

    list<Menu> MenuList=null; 

    prepareView(){ 
     // initialize your menu list 
     List yourMenu = new ArrayList(); 
     yourMenu.add("foo"); 
     yourMenu.add("bar"); 
     setMenuList(yourMenu); 
    } 

    view(){ 
     return INPUT; 
    } 
} 

, 당신은이 MyForm의 관점() 메서드를 호출 할 때, prepareView()가 먼저 호출됩니다 : 그것은 다른 액션 로직이 발생하기 전에, 액션 호출 할 때 자동으로 prepare 메소드를 호출 할 수 있습니다 메뉴 설정 및 INPUT에서 사용할 준비가되었습니다.

유효 기간 동안 세션에 yourMenu을 추가하여 유효성 검사 오류가 발생해도 계속 사용할 수 있도록 할 수 있습니다.

+0

감사합니다. Pat은 정말 유용한 정보입니다. –

관련 문제