2016-07-26 3 views
-1

양식이있는 TabbedPanel이있는 ModalWindow가 있습니다. 두 개의 AbstractTab에는 입력 요소가있는 DataTable이 있습니다.Wicket 양식 제출시 데이터가 누락되었습니다.

그래서 : 모달 윈도> 양식> TabbedPanel -> TAB1 (패널)의 DataTable이 (두 개의 탭이 있습니다)를 모달 윈도 내에서

, 나는 다음과 같이 폼에 버튼 3 개를 추가> :

// save button 
    final GbAjaxButton save = new GbAjaxButton("save") { 
     private static final long serialVersionUID = 1L; 

     @Override 
     public void onSubmit(final AjaxRequestTarget target, final Form<?> form) { 
      System.out.println("Saving something... "); 
     } 
    }; 

POST를 통해 백엔드로 전송되는 데이터를 볼 수는 있지만 데이터 테이블의 모든 필드에 액세스 할 수없는 것 같습니다. 코드에 대한

일부 부품은 다음과 같습니다 : 난 정말이 문제에 대한 몇 가지 통찰력을 부탁드립니다

tabA = new AbstractTab("Tab Name") { 
    public Panel getPanel() { 
     return new SomeNewPanel(panelId,<somedata>); // <-- this has the DataTable with inputs 
    } 
} 
Form form = new Form("formNameInHtml"); 
form.add(new TabbedPanel("htmlName", tabs); 

.

감사합니다.

+1

@ martin-g 당신과 같은 비관적이고 쓸모없는 관찰로 인해 스택 오버플로 사용이 중단 될 것입니다. 나는 그들이 물건을 알고 있다고 생각하고 합법적 인 질문을 비판하는 모든 사람들에게 질려합니다. 바쁜. – Fer

+0

'POST를 통해 백엔드로 전송되는 데이터를 볼 수는 있지만 데이터 테이블의 어떤 필드에도 액세스 할 수없는 것 같습니다. '- 이것은 나에게 의미가 없습니다. 설명이 필요합니다. onSubmit()에서 양식 구성 요소의 모델 유형이나 POST 데이터를 읽는 방식을 알려주지 않습니다. –

답변

1
ModalWindow javadoc에서

, "당신이 모달 창 구성 요소에서 양식을 사용하려는 경우 (개찰구에서 합법적 중첩 형태)를 다른 형태로 모달 창 자체를 넣어 있는지 확인하고 모달 창에서 양식 창 전에 제출된다 닫혀 라. "

Wicket은 모달 창 외부에 폼을 자동으로 추가하므로 내부에서 두 번째 폼을 사용하려면 org.apache.wicket.markup.html.form.Form#isRootForm()을 재정의하고 true를 반환해야합니다.

+0

안녕하세요. @atha, 감사합니다. 마크 업은 실제로 하위 양식에 포함되었습니다. 문제는 결국 마크 업 자체의 ID가되었습니다. Wicket의 프론트 엔드 Ajax가 잘못된 입력을 제출했습니다. 정말 드물다. – Fer