文档章节

struts2前端传值到后端出现中文乱码的解决办法

天高地厚宇宙无穷
 天高地厚宇宙无穷
发布于 2016/05/14 23:51
字数 295
阅读 56
收藏 1

1、自定义编码器转码(据说很不推荐这种方式)

    (1)解码器

package com.jack.utils;

import java.io.UnsupportedEncodingException;

import com.jack.model.Academy;

public class ConvertCharacter {
	/**
	 * 手动解码,解决前端传值到后端的中文乱码问题
	 * 
	 * @param s
	 * @return
	 */
	public String Convert(String s) {
		String result = null;
		byte[] temp;
		try {
			temp = s.getBytes("iso-8859-1");
			result = new String(temp, "utf-8");
		} catch (UnsupportedEncodingException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return result;
	}
    // 返回已经解码了的对象
	public Object ConvertObj(Object obj) {
		if (obj instanceof Academy) {
			obj = (Academy) obj;
			((Academy) obj).setAcdCode(Convert(((Academy) obj).getAcdCode()));
			((Academy) obj).setAcdName(Convert(((Academy) obj).getAcdName()));
			((Academy) obj).setRemarks(Convert(((Academy) obj).getRemarks()));
		}
		return obj;
	}
}

    (2)当action中执行保存数据到数据库操作时,在action中调用该解码器解码

package com.jack.model;

import java.io.UnsupportedEncodingException;
import java.util.Set;

import lombok.Data;

import com.jack.dao.ManagerImple;
import com.jack.utils.ConvertCharacter;

@Data
public class Academy extends UrlManager {
	private int acdId;
	private String acdName;
	private String acdCode;
	private String remarks;
	private Set<StuClass> stuCls;

	/**
	 * 
	 * 直接将model和action结合,在model中定义增删改查即可
	 */
	private ManagerImple managerIm;

	public boolean save() throws UnsupportedEncodingException {

		managerIm = new ManagerImple();

		ConvertCharacter convert = new ConvertCharacter();

		System.out.println("保存:"+convert.ConvertObj(this));// 中文转码

		boolean isOk = false;

		isOk = managerIm.doSave(this);

		return isOk;
	}
}

2、通过配置过滤器编码方式解决(推荐使用,可我配置了几个小时都没成功!)

© 著作权归作者所有

共有 人打赏支持
天高地厚宇宙无穷
粉丝 11
博文 178
码字总数 14180
作品 0
贵阳
私信 提问
[备忘]IE6不完全支持UTF-8导致汉字乱码的BUG~

环境:Windows XP SP3 简体中文版、IE6、Tomcat 6.0.32、JDK 1.6.0.23 配置:JSP页面charset=UTF-8" pageEncoding="UTF-8",tomcat的Server.xml中配置URIEncoding="utf-8",Struts2的struts.......

leeoo
2011/12/24
0
0
struts2 传值 中文 为空

struts2 传值为中文的时候,传不到后台,是空的,不是乱码是空的,各位有什么办法帮帮我 前台代码:

seandu
2013/06/18
475
10
一次post提交中文造成乱码问题的分析

前提条件 在解决问题之前,web模块中配置了自定义的HttpEncodingFilter和GetHttpServletRequestWrapper,期待能够解决所有服务器上的中文乱码问题,很遗憾,让大家失望了。最后给出web.xml中...

彭苏云
2015/09/18
3.1K
3
Struts2乱码终极解决办法

这个暑假一直在做有关Struts2的相关开发,可是乱码问题一直出现,也一直没在意。。。今天闲来有空,总结一下,希望以后乱码问题不要再出现 先把以往需要设置的点罗列一下: 1. JSP 文件头 2....

长平狐
2012/11/12
465
0
AJAX中文乱码总结

1.发送路径中的参数有中文,在服务器段接收参数值是乱码 解决办法:前端(客户端)两次编码,后端(服务器)一次解码! 前端: var url="index.jsp?test=来自前台我不是乱码"; url=encodeURI(ur...

zh119893
2014/05/17
2.4K
0

没有更多内容

加载失败,请刷新页面

加载更多

apache顶级项目(二) - B~C

apache顶级项目(二) - B~C https://www.apache.org/ Bahir Apache Bahir provides extensions to multiple distributed analytic platforms, extending their reach with a diversity of s......

晨猫
58分钟前
1
0
day152-2018-11-19-英语流利阅读

“超级食物”竟然是营销噱头? Daniel 2018-11-19 1.今日导读 近几年来,超级食物 superfoods 开始逐渐走红。不难发现,越来越多的轻食餐厅也在不断推出以超级食物为主打食材的健康料理,像是...

飞鱼说编程
今天
3
0
SpringBoot源码:启动过程分析(二)

接着上篇继续分析 SpringBoot 的启动过程。 SpringBoot的版本为:2.1.0 release,最新版本。 一.时序图 一样的,我们先把时序图贴上来,方便理解: 二.源码分析 回顾一下,前面我们分析到了下...

Jacktanger
昨天
3
0
Apache防盗链配置,Directory访问控制,FilesMatch进行访问控制

防盗链配置 通过限制referer来实现防盗链的功能 配置前,使用curl -e 指定referer [root@test-a test-webroot]# curl -e "http://www.test.com/1.html" -x127.0.0.1:80 "www.test.com/1.jpg......

野雪球
昨天
5
0
RxJava threading

因为Rx针对异步系统设计,并且Rx也自然支持多线程,所以新的Rx开发人员有时会假设Rx默认是多线程的。在其他任何事情之前,重要的是澄清Rx默认是单线程的。 除非另有说明,否则每次调用onNex...

woshixin
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部