asdtiang的博客 感谢blogjava提供的博客交流平台

struts2.1.8 action提交乱码解决办法

Posted on 2010-04-15 10:33 asdtiang 阅读(950) 评论(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);

天苍苍,野茫茫,风吹草底见牛羊

只有注册用户登录后才能发表评论。


网站导航:
 

posts - 80, comments - 24, trackbacks - 0, articles - 32

Copyright © asdtiang

asdtiang的博客 PaidMailz
点击广告网赚A(每天4个广告,每个0.0025美元,一个搜索广告0.03美元)