文档章节

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

天高地厚宇宙无穷
 天高地厚宇宙无穷
发布于 2016/05/14 23:51
字数 295
阅读 57
收藏 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
489
10
一次post提交中文造成乱码问题的分析

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

彭苏云
2015/09/18
3.1K
3
PHP json_encode() 函数详解及中文乱码问题

在 php 中使用 json_encode() 内置函数(php > 5.2)可以使用得 php 中数据可以与其它语言很好的传递并且使用它。 这个函数的功能是将数值转换成json数据存储格式。 ? 1 2 3 4 5 6 7 8 9 程序运...

zyt_1978
2016/06/19
31
0
AJAX中文乱码总结

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

zh119893
2014/05/17
2.4K
0

没有更多内容

加载失败,请刷新页面

加载更多

Linux Wireshark普通用户启动使用方案

当系统安装好Wireshark后请正常启动是否可以进行正常使用,如果不行请参考下列指导 向系统添加一个用户组 sudo groupadd wireshark //如提示此组存在可跳过 将指定用户添加到这个组中 sudo...

CHONGCHEN
今天
1
0
CSS 选择器参考手册

CSS 选择器参考手册 选择器 描述 [attribute] 用于选取带有指定属性的元素。 [attribute=value] 用于选取带有指定属性和值的元素。 [attribute~=value] 用于选取属性值中包含指定词汇的元素。...

Jack088
今天
2
0
数据库篇一

数据库篇 第1章 数据库介绍 1.1 数据库概述  什么是数据库(DB:DataBase) 数据库就是存储数据的仓库,其本质是一个文件系统,数据按照特定的格式将数据存储起来,用户可以对数据库中的数据...

stars永恒
今天
4
0
Intellij IDEA中设置了jsp页面,但是在访问页面时却提示404

在Intellij IDEA中设置了spring boot的jsp页面,但是在访问时,却出现404,Not Found,经过查找资料后解决,步骤如下: 在Run/Debug Configurations面板中设置该程序的Working Directory选项...

uknow8692
昨天
4
0
day24:文档第五行增内容|每月1号压缩/etc/目录|过滤文本重复次数多的10个单词|人员分组|

1、在文本文档1.txt里第五行下面增加如下内容;两个方法; # This is a test file.# Test insert line into this file. 分析:给文档后增加内容,可以用sed 来搞定;也可以用while do done...

芬野de博客
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部