我寫了一個解析器,它可以將平假名文本解析爲羅馬字文本。 然後我做了一個facelet,你可以在Picture1上看到。如果我輸入任何平假名文本,然後單擊翻譯按鈕,它將在兩個textareas中顯示垃圾文本。解析器庫有單元測試,所有的測試都通過了。 我也使用相同的lib創建了一個小型JavaFX GUI,並且該錯誤不存在。此錯誤僅在部署並在瀏覽器中運行後纔會顯示。我使用JSF 2.2和Glassfish 4.1.0作爲容器。JSF輸入字段僅在部署後的第一個請求中顯示mojibake,然後才能正常工作
圖片1: 當我重新輸入相同的文字顯示出這個垃圾後,效果很好。 它可以像任何其他時間一樣工作。 你可以在Picture2上看到它。我輸入了相同的文本,並且在最初的錯誤後運行良好。
這裏是的index.xhtml的代碼:
<?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:ui="http://java.sun.com/jsf/facelets"
xmlns:f="http://java.sun.com/jsf/core">
<h:head>
<title>Convert Hiragana, Romaji</title>
</h:head>
<h:body>
<h:outputStylesheet library="css" name="styles.css"/>
<f:view>
<div class="H_OuterDiv">
<h1><h:outputText value="Hiragana to Romaji" /></h1>
<h:form>
<div class="H_HiraganaTextArea">
<h3><h:outputText value="Enter Hiragana" /></h3>
<h:inputTextarea cols="30" rows="20" value="# {hconverter.hiraganaInput}"></h:inputTextarea>
</div>
<div class="H_MiddleDiv">
<div class="H_ButtonsDiv">
<h:commandButton value="Translate" action="# {hconverter.convertHiraganaToRomaji()}"></h:commandButton>
</div>
</div>
</h:form>
<div class="H_RomajiTextArea">
<h3>
Enter Romaji Text
</h3>
<h:inputTextarea value="#{hconverter.romajiOutput}" cols="30" rows="20" />
</div>
</div>
</f:view>
</h:body>
</html>
這裏是託管bean的代碼。 HiraganaLettersNew類是單身人士。
@RequestScoped
@Named
public class Hconverter {
private String hiraganaInput = null;
private String romajiOutput = null;
public String getHiraganaInput() {
return hiraganaInput;
}
public void setHiraganaInput(String hiraganaInput) {
this.hiraganaInput = hiraganaInput;
}
public String getRomajiOutput() {
return romajiOutput;
}
public void setRomajiOutput(String romajiOutput) {
this.romajiOutput = romajiOutput;
}
public void convertHiraganaToRomaji() {
HiraganaLettersNew parser = HiraganaLettersNew.getInstance();
romajiOutput = parser.parseHiraganaString(hiraganaInput);
}
}
可能有人請幫助我嗎?我是Facelets和JavaEE的新手,我不知道爲什麼會發生這種錯誤。先謝謝你!
的可能的複製[錯誤的字符集爲JSF的高:inputText的在第一次提交(只)](https://stackoverflow.com/questions/ 9647380 /錯誤的字符集換jsfs-hinputtext上先提交只) – Chase