2012-12-20 4 views
1

이 내 페이지 생성자에서이 코드를 제출개찰구 업데이트되지 페이지

private String selectedAwsId; 
    private String selectedIsReal; 
    //these two are actually outside the constructor, and getters and setters for these two strings not shown 

    List<AwsCredentials> awsCredentials = (List<AwsCredentials>)getAwsCredentials(); 
    List<String> awsIds = new ArrayList<String>(); 
    for (AwsCredentials cred : awsCredentials){ 
     awsIds.add(cred.getAwsId()); 
    } 
    selectedAwsId = awsIds.get(0); 

    List<String> yesOrNo = Arrays.asList(new String[] { "sandbox", "real"}); 
    selectedIsReal = "sandbox"; 

    Form selectAwsCredentialsForm = new Form("selectAwsCredentialsForm"){ 
     @Override 
     public void onSubmit() { 
      super.onSubmit(); 
      //TODO: why isn't this updating the form? 
     } 
    }; 
    add(selectAwsCredentialsForm); 
    selectAwsCredentialsForm.add(new DropDownChoice("selectAwsCredentialsDropdown", new PropertyModel(this, "selectedAwsId"), awsIds)); 
    selectAwsCredentialsForm.add(new DropDownChoice("selectRealOrSandboxHitsDropdown", new PropertyModel(this, "selectedIsReal"), yesOrNo)); 

내가 페이지를 렌더링 처음으로,이 잘 작동합니다. 그러나 DropDownChoices 중 하나에서 선택을 변경하고 양식을 제출하면 페이지가 변경되지 않습니다 (selectedAwsId 및 selectedIsReal의 값은 이에 따라 변경되지 않습니다). 양식이 어떻게 작동하는지에 대한 이해가 부족합니다. 양식이 제출되면 전체 페이지가 새로 고쳐집니다 (생성자가 다시 실행됩니까?)

+0

양식 제출을위한 코드를 추가 할 수 있습니까 (문제와 관련이있는 경우를 대비하여)? –

+0

이것은 전체 코드입니다 (onSubmit에서 아무 것도 제거하지 않았습니다). DropDownChoice 모델의 일부이기 때문에 두 값을 자동으로 업데이트하면 안됩니까? – maxko87

답변

0

모델을 구성하여 양식의 모델로 설정할 수 있습니다. (이것은 내가하는 것입니다.) 양식을 제출하면 (그리고 모두 적절하게 코딩 된 경우) 양식의 모델이 업데이트됩니다.