2012-06-06 2 views
1
<?xml version="1.0" encoding="UTF-8" ?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" 
    xmlns:h="http://java.sun.com/jsf/html" 
    xmlns:f="http://java.sun.com/jsf/core" 
    xmlns:ui="http://java.sun.com/jsf/facelets" > 
    <head> 
    </head> 

    <h:form> 
     <h:body> 
      <h:inputText value="#{editorBean.value2}" /> 
      <h:commandButton action="content.xhtml" value="Submit" /> 
     </h:body> 
    </h:form> 
</html> 
  • 값 2 2.1.19
  • 글래스 피시 3.1.2

을 JSF 인 Mojarra를 사용하여 sessionscoped ManageBean 보내기 UTF-8 문자열

  • 의 String입니다 작동하지 않습니다 äüö을 입력하고 양식을 제출하면 표준 출력에 äöü으로 표시됩니다.

    하지만 아약스를 사용하면 이런 일이 발생하지 않습니다.

    어떻게 이것이 발생하며 어떻게 해결할 수 있습니까?

  • 답변

    1

    JSF/Facelets는 프로세스 전반에서 이미 기본적으로 UTF-8을 사용합니다.

    요청 매개 변수가 UTF-8을 사용하여 인코딩 되었기 때문에 Glassfish에게 UTF-8을 사용하여 올바르게 디코딩 할 수 있도록 말하면됩니다. /WEB-INF/glassfish-web.xml 파일을 열고 <glassfish-web-app>에 다음 항목을 추가합니다

    <parameter-encoding default-charset="UTF-8" /> 
    

    을 그건 그렇고, 당신의 <h:form> 것은 없습니다 외부<h:body> 내부 가고있다. 또한 JSF에서 적절한 Ajax 스크립트를 자동으로 포함 시키려면 <head> 대신 <h:head>을 사용해야합니다.

    +0

    아주 이상한 .. 같은 프로젝트에서 잘 작동하는 다른 프로젝트! 감사합니다. – user1385980