문제
여기에서 찾은 것과 비슷한 문제가 있습니다. JSF SelectItem 레이블 형식.
내가하고 싶은 것은 두 배의 값을 내 값으로 받아들이고 두 가지 소수로 표시하는 것입니다. 이것은 쉬운 방법으로 할 수 있습니까?
사용하려고 시도했지만 입력 필드의 초기 값이 아닌 서버로 전송되는 입력 텍스트의 값에 적용되는 것 같습니다.
지금까지 내 코드 :
<h:inputText id="december" value="#{budgetMB.december}" onchange="setDirty()" styleClass="StandardBlack">
<f:convertNumber maxFractionDigits="2" groupingUsed="false" />
</h:inputText>
편집 : 위의 코드는 실제로 작동합니다. 프로젝트를 명시 적으로 재건하고 내장 된 OC4J 서버를 다시 시작했을 때에도 JSP 페이지를 업데이트하지 않은 JDeveloper에 속했습니다. 그러나 내 컴퓨터를 재부팅 한 후에는 모든 것이 괜찮 았습니다.
해결책
귀하의 요구 사항을 오해하지 않으면 뷰를 렌더링하는 동안 입력 상자의 값을 형식화 할 수있었습니다.
<h:inputText id="text1" value="#{...}">
<f:convertNumber pattern="#,###,##0.00"/>
</h:inputText>
공급 업체 브랜드 이클립스에서 표준 얼굴 구성 요소를 사용하고 있었으므로 pattern
속성은 표준 JSF의 일부입니다.
다른 팁
당신이하려고하는 것은 화면에서 입력 텍스트 필드의 값을 변경하는 것이면 (사용자 입력을 수정하기 위해) JSF AJAX 프레임 워크 중 하나를 사용하는 것을 살펴보아야합니다. 풍부한 얼굴.
가능한 예는 다음과 같습니다.
<h:inputText id="december" value="#{budgetMB.december}" styleClass="StandardBlack">
<f:convertNumber maxFractionDigits="2" groupingUsed="false" />
<a4j:support event="onblur" reRender="december" />
</h:inputText>
나는 이것을 테스트하지 않았지만 그것이 효과가 있다고 생각합니다.
실제로 통화를 형식화하는 것 같습니다. 이미 많은 옵션을 할당 할 수있는 통화를 처리하기위한 특정 형성자가 이미 있습니다.
<f:convertNumber type="currency" />
이 태그의 흥미로운 속성은 다음과 같습니다. locale
, currencyCode
, integerOnly
, currencySymbol
그리고 pattern
.