Posted on 2010-04-15 10:33
asdtiang 閱讀(966)
評論(0) 編輯 收藏 所屬分類:
java ee
這個問題是2.1.6里的BUG,在2.1.8的時候解決了,文本框里的中文能正常提交:不過url中的param提交的是UTF-8編碼,中文是UTF-8編碼,英文還是英文。
<s:url id="del" value="editView.action">
<s:param name="name">
<s:property value="name" /> ///這里會提交UTF-8編碼
</s:param>
</s:url>
記得以前好像寫過,不過不知道放哪里,今天用struts2.1.8+spring+hibernate做開發時,又遇到這個問題,寫出來吧,下次好找:
頁面編碼設置成UTF-8,如何提交的中文為”青云山“,提交到action里變成了:

38738其實就是UTF-8編碼,自己寫了一個類進行轉化一個就行了。
public class MyConverter {
private static MyConverter myConverter;
private StringBuffer str;
private char[] ch;
private MyConverter() {
}
public static MyConverter getMyConverter() {
if (myConverter == null) {
myConverter = new MyConverter();
}
return myConverter;
}
public String converter(String str3) {
if(str3==null){
return "";
}
str=new StringBuffer();
str.append("");
ch=str3.toCharArray();
for (int i = 0; i < ch.length; i++) {
if(ch[i]=='&'){
if(ch[i+1]=='#')
{
str.append(Character.toChars(Integer.parseInt(new String(ch,i+2,5))));
i+=7;
}
else{
str.append(ch[i]);
}
}
else{
str.append(ch[i]);
}
}
return str.toString();
}
}
使用時,在action中,可能有中文提交的地方轉化一下就行了。
MyConverter my = MyConverter.getMyConverter();
this.userName = my.converter(this.userName);
天蒼蒼,野茫茫,風吹草底見牛羊