>

우리는 새로운 요구 사항으로 이전 jsf 1 프로젝트를 jsf 버전 2.3으로 마이그레이션하기 시작했습니다. 현재 viewparams를 사용하는 페이지를 작업 중입니다. 잘못된 매개 변수 유형을 자동으로 무시하는 올바른 방법은 무엇입니까?

예 :searchResults.xhtml페이지에 대한이 정의의 예 :

<f:metadata>
   <f:viewParam name="lastPrice" 
             value="#{ReportAgentBean.lastPrice}" converter="javax.faces.Double"/>
   <f:viewParam name="currentPrice" 
             value="#{ReportAgentBean.currentPrice}" converter="javax.faces.Double"/>
   <f:viewParam name="listPrice" 
             value="#{ReportAgentBean.listPrice}" converter="javax.faces.Double"/>
</f:metadata>

무효 매개 변수를 무시하거나 누군가 다음과 같은 요청을 발생시키는 경우 null로 처리하는 가장 좋은 방법은 무엇입니까?

http://www.ourapp.com/reports/searchResults ? lastPrice = undefined? currentPrice = INVALIDSTRING

이상적으로 발생하는 결과 :

http://www.ourapp.com/reports/searchResults

힌트를 주셔서 감사합니다.

  • 답변 # 1

    내가 아는 한, 사용하는 기본면 변환기는 잘못된 값을 전달/무시하여 무시할 수 없습니다.

    이 작업을 수행하려면 고유 한 사용자 정의 변환기를 작성하고 올바른 유형으로 캐스트를 수행하고 캐스트가 성공하면 캐스트 값을 리턴하고 실패하면 기본값을 리턴하십시오.

    이것은 ID의 존재만으로 어딘가에서 전체 복잡한 객체를 읽는 더 복잡한 매개 변수/변환기 조합에 대해 일반적으로 수행하는 작업입니다

    이 개념은 OmniFaces @Param 에서도 사용됩니다.  흥미로운 해결책이 될 수 있습니다. 변환에 실패하면 필드를 널로 설정합니다. 해당 페이지의 데모도 참조하십시오.

  • 이전 등록 된 서버는 어디에 저장됩니까?
  • 다음 java - 의도적으로 NullPointerException으로 인해 설치 후 Android 갤러리 앱이 시작되지 않습니다