2012-10-10 4 views
2

Primefaces 3.2에서 JSF 2.0을 사용하고 있습니다. maxlength가 4000으로 설정된 텍스트 영역이 있습니다. 하지만 텍스트 영역에서는 4001 문자를 입력 할 수 있습니다. (항상 하나의 추가 문자). 이 문제를 방지하기 위해 최대 길이를 3999로 설정했습니다. 알려진 문제입니까? 쇼케이스에이 문제가 보이지 않는다. 아직 저장하기 위해 하나 이상의 바이트를 차지 UTF-8 문자를 사용Primefaces inputTextArea maxlength가 작동하지 않습니다.

<p:inputTextarea id="text" value="#{controller.text}" maxlength="4000" 
       rows="6" cols="150" autoResize="true" required="true" requiredMessage="Text is required" rendered="#{controller.condition}"/> 
+0

어떤 브라우저를 사용하고 있습니까? –

+0

브라우저 콘솔에 오류가 있습니까? IE/FF/Chrome에서 완벽하게 작동합니다. 최신 Pf 버전 – Daniel

+0

으로 업그레이드하십시오. FF와 Chrome에서 모두 발생합니다. 동일한 브라우저를 사용하여 쇼케이스를 확인하고 있습니다. Daniel이 언급했듯이 PF 버전 문제 일 수 있습니다. 최신 버전으로 업그레이드하여 도움이되는지 확인합니다. – Gowtham

답변

2

는 한 문자로 계산,하지만 당신은 (더 이상 4000 자입니다 없다는 오류 메시지가 표시) 데이터베이스에두고 문제로 실행할 수 있습니다 .

당신은 항상 +1 문자라고 말하고, ASCII 문자 (숫자 + 영문자) 만 사용하여 체크 아웃하십시오.

ps : (재 등장 문자를 표시하기 위해 nobleCount를 사용하는 경우 UTF-8 문자/일부 특수 문자와 관련된 문제가 있음)

4

때로 \ n 대신 2 자로 카운트를 입력 할 수도 있습니다. 그런 경우 setter 메소드에서이 문자들을 모두 \ n으로 바꾸십시오. 예를 들어 StringUtils.replace() 메서드를 사용하여이를 수행 할 수 있습니다.

your_string = StringUtils.replace(your_string, "\r\n", "\n"); 
관련 문제