NullPointerException을 던지는 대신 새로운 Bean 인스턴스를 만들기 위해 JSF를 시행하는 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/1922434

문제

나는 내가 뭔가 잘못했다고 확신한다. 따라서 질문의 제목은 약간 틀렸다.

새로운 사용자 객체 (로그인, 암호, 생일 등과 같은 필드)를 만들기위한 여러 필드가있는 양식이 있습니다. 그리고 2 개의 버튼이 있습니다 - 취소 및 작성. 아직 생성을 끝내지 못했습니다 :) 그러나 취소를 누를 때 NullPointerException이 표시됩니다. 다음은 단순화 된 코드입니다.

<f:view>
    <h:form>
        <h:panelGroup layout="block">       
            <h:inputText id="add_login" value="#{userSupport.user.login}"/>
            <h:inputSecret id="add_password" value="#{userSupport.user.password}"/>
            <h:inputText id="add_name" value="#{userSupport.user.name}"/>
            <h:inputText id="add_surname" value="#{userSupport.user.surname}"/>

            <h:commandButton value="Cancel" action="cancel"/>
        </h:panelGroup>
    </h:form>
</f:view>

Usersupport 클래스에는 필드가 있습니다 user Getter와 Setter 및 기타 방법으로. 세션 범위가있는 스프링 콩입니다.

취소를 누르면 JSF가 사용자-객체의 입력에서 값을 저장하려고하지만 사용자-객체는 null이기 때문에 NPE가 나타납니다.

이 작업을 수행하는 올바른 방법은 무엇입니까?

도움이 되었습니까?

해결책

취소 버튼 세트에서 immediate="true"이것은 모든 "원치 않는"단계를 건너 뜁니다.

그러나 "생성"버튼에서 동일한 문제가 발생하며 사용해서는 안됩니다. immediate 거기. 더 잘 초기화합니다 user 속성 - 생성자 또는 사용 @PostConstruct 초기화 조치를 수행하는 방법에 대한 주석.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top