문제

내 앱 중 하나에서 약간의 국제화 문제로 어려움을 겪고 있습니다. 이야기는 다음과 같습니다.

필터링 할 데이터 테이블의 열을 선택하기 위해 레코드와 SelectOneMenu를 표시하는 데이터 테이블이 있습니다. SELECTONE에는 DatareFresh 시간의 백킹 콩의 실제 로케일에 따라 채워진 SELECTEMETS가 공급됩니다.

이제 사용자가 로케일을 변경하면 페이지가 다시 렌더링 될 때까지 SelectOne의 내용이 이전 로케일에 머무르고 있습니다. 이것은 매우 논리적이고 기대됩니다.

물론 나는 그것이 바뀌기를 원합니다.

그래서 나는 rerendering없이 그것을 변경할 수 있도록 LanguageFile 항목에 대한 참조를 포함하는 SelectIMS를 사용하는 자체 선택 요소를 작성하려고했습니다.

여기 내가 시도한 것이 있습니다

<select id="j_id5:filterSelector" name="j_id5:filterSelector" size="1"> 
    <c:forEach var="item" items="#{gridBean.filterFields}">
        <option value="#{item.Value}">#{msg[item.Label]}</option>
    </c:forEach>
</select>

슬프게도 JSF는 항목에 레이블이나 값 속성이 없다고 말합니다. ;)

누구 든지이 속성에 액세스하는 방법에 대한 아이디어가 있습니까?

도움이 되었습니까?

해결책 2

필터 필드를 두 번 저장하는 데 문제가 해결되었습니다. 각 언어마다 한 번 - 런타임 삭제가 렌더링됩니다. 좋은 것은 아니지만 작동합니다. Changelistener가 갈 수 없었습니다 ...

다른 팁

당신은 나에게 다음을 써야 할 것 같습니다.

#{item.value}

대신에 #{item.Value}, 표준 Javabeans 컨벤션이 가질 수 있습니다 getXyz() getter for xyz 재산.

또한, 당신은 왜 a를 제공하지 않습니까? valueChangeListener 로케일 선택을위한 UI 구성 요소에, 그 안에는 해당 로케일의 선택 항목 레이블을 채 웁니다. 그렇게하면 표준을 사용할 수 있습니다 f:selectItems 꼬리표.

또한 명령 링크가 페이지를 다시 렌더링하여 필요한 작업을 자동으로 수행하도록 할 수 있습니다. 이것이 귀하의 요구 사항을 충족하는지 여부를 모릅니다. :)

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