关于Struts中jsp页面上传字符参数变乱码的问题

来源:互联网 发布:绅士文学app没有网络 编辑:程序博客网 时间:2024/06/05 02:22
解决对策:传递参数之前用URLEncoder进行编码,接收参数之后再用URLDecoder进行解码,中间还需要用一个HashMap存放编码后的参数。

example:(对keyWord编码)
①action
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.net.URLEncoder;
import java.util.HashMap;

try {
    if ( !"".equals( form.getKeyWord() ) ) {
        form.setKeyWord( URLDecoder.decode( form.getKeyWord(), "UTF-8" ) );
    }
} catch ( UnsupportedEncodingException uee ) {
    form.setKeyWord( form.getKeyWord() );

HashMap< String, String > infoHash = form.getInfoHash();
infoHash = new HashMap< String, String >();
String keyWord;
if ( !"".equals( form.getKeyWord() ) ) {
    try {
        keyWord = URLEncoder.encode( form.getKeyWord(), "UTF-8" );
    } catch ( UnsupportedEncodingException uee ) {
        keyWord = form.getKeyWord();
    }
    infoHash.put( "keyWord", keyWord );
}
form.setInfoHash( infoHash );

②form
private String keyWord;(及get,set方法)
private HashMap< String, String > infoHash;(及get,set方法)

③jsp
<html:link action="/action" name ="form" paramId="pageNo" paramName="form" paramProperty="firstPage" property="infoHash">第一页</html:link>

应用对象:web站点上需要检索功能的页面,HashMap中可以存放多个检索对象,比如姓名,介绍等等,也可以用于只有一个关键字的搜索引擎。