2011-03-23 3 views
1

나는 전형적인 형태로 제시하고있는 도메인 객체를 가지고 있습니다. 다음은 간단한 예입니다.스프링 MVC - 필드 비우기

public class Name implements Keyed { 

    private String firstName; 
    private String middleName; 
    private String lastName; 
    private Number key; 

    //Getters and Setters 
} 

각 Name 개체를 수정할 수있는 두 가지 유형의 사용자가 있다고 가정 해 보겠습니다. 어리석은 이유로 한 그룹은 사용자의 중간 이름을 보거나 편집 할 수 없습니다. 그래서 나는 그 필드를 폼 (숨겨진 필드도 아님)으로부터 떠난다.

어쨌든 Spring이 중간 이름 필드를 지우지 못하도록하고 있습니까? 나는 이것을 위해 새로운 객체를 만들 수 있지만, 중복해서는 안된다.

수정되지 않은 데이터를 보관할 수있는 방법이 있습니까 (즉, 사용자에게 표시되지 않았기 때문에 변경되지 않았을 수 있습니다)?

답변

0

스프링 바인딩을 사용하면 간단하게 불가능한 것으로 보입니다. 기본적으로 도메인 객체의 가까운 복사본을 만들고 페이지 자체에 표시되지 않는 필드를 제거해야합니다. 불행한 일이지만 스프링 바인딩이 어떻게 작동하는지 간단히 알려주는 것입니다. 왜냐하면 메소드가 호출되기 전에 새로운 인스턴스가 봄에 생성되기 때문입니다.

0

세션에 중간 이름을 저장하고 (읽기 전용 사용자의 경우) 양식 제출시 검색 할 수 있습니다.

+0

사실, 이것은 단순화 된 예입니다. 제가 작업하고있는 부분은 깊은 구성을 가진 대상입니다. 예를 들어 중간 이름을 표시하지 않을 수도 있습니다. 그러나, 나는 정말로 생년월일, 이메일 주소, 실제 주소 등을 가진 Person 객체를 다루고있다. 나는 그 세션에서 무엇을 놓을 지 선택해야하고, 이후의 제출시 모든 것을 재설정해야한다. 표시되지 않은 필드 (다루기 힘들 수 있음) – Scott