文档章节

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

天高地厚宇宙无穷
 天高地厚宇宙无穷
发布于 2016/05/14 23:51
字数 295
阅读 55
收藏 1
点赞 2
评论 0

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
AJAX中文乱码总结

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

zh119893
2014/05/17
2.4K
0
struts2 传值 中文 为空

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

seandu
2013/06/18
475
10
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
一次post提交中文造成乱码问题的分析

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

彭苏云
2015/09/18
3.1K
3
javaweb前台对参数加密,后台解密,避免出现中文乱码

废话不多说,在web开放中遇到前台向后台传值,注意:中文值的时候,后台如果单纯的用request.getParamter(name);接收,得到的是一个乱码,如何避免出现中文乱码?这里简单的介绍下,我自己的...

什么是程序员
2015/12/17
68
0
Struts2乱码终极解决办法

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

长平狐
2012/11/12
465
0
rsa加密后端解密出现中文乱码解决方法

今天被这个中文乱码的问题困扰了一天,故事是这样的: 前端rsa加密,后端去解密,但是呢有中文的时候解密出来就乱了,想了各种办法未果; 结论,既然中文乱码,我就不传中文就行了哈。在加密...

大哥哥一休
2015/06/09
0
0
使用request.getParameter(“参数名”)取网页中输入值的中文乱码解决方法

在Java 开发中,如果框架搭建的不完善或者初学者在学习过程中,出现中文乱码是经常的事儿(哈。谁让发明Java语言的不是中国人呢) 今天跟大家分享几个解决java Web开发中,request.getParame...

zwtestsky
2016/11/25
0
0
Struts2上传文件学习笔记

问题一:中文乱码 在使用Struts2实现文件上传时,若上传文件名为中文,则会在项目的发布目录中看上传文件名显示为乱码。解决办法很简单: 在struts.xml配置文件中配置: <constant name="st...

键盘小生
2012/06/10
0
1

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Git 2.18版本发布:支持Git协议v2,提升性能

Git 2.18版本发布:支持Git协议v2,提升性能Git 2.18版本发布:支持Git协议v2,提升性能 新版本协议的主要驱动力是使 Git 服务端能够对各种 ref(分支与 tag)进行过滤操作。 这就意味着,G...

linux-tao
28分钟前
0
0
python浏览器自动化测试库【2018/7/22-更新】

64位py2.7版本 更新 document_GetResources 枚举页面资源 document_GetresourceText 获取指定url的内容 包括页面图片 下载地址下载地址 密码:upr47x...

开飞色
44分钟前
28
0
关于DCL双重锁失效及解决方案

关于DCL双重锁失效及解决方案 Double Check Lock (DCL)实现单例 DCL 方式实现单例的优点是既能够在需要时才初始化单例,又能够保证线程安全,且单例对象初始化后调用getInstance方法不进行...

DannyCoder
50分钟前
0
0
PowerDesigner 16.5 安装配置

PowerDesigner16.5破解版是一款业内领先且开发人员常用的数据库建模工具,PowerDesigner可以从物理和概念两个层面设计数据库,方便用户制作处清晰直观的数据流程图和结构模型,欢迎有需要的朋...

Gibbons
今天
0
0
mac Homebrew 指令积累

1通用命令 brew install [包名] //安装包 brew list //列举安装的包 brew info [包名] // 显示安装包的详细信息 mysql 相关 #启动mysql 服务 brew service start mysql my...

Kenny100120
今天
0
0
前端Tips: 创建, 发布自己的 Vue UI 组件库

创建, 发布自己的 Vue UI 组件库 前言 在使用 Vue 进行日常开发时, 我们经常会用到一些开源的 UI 库, 如: Element-UI, Vuetify 等. 只需一行命令, 即可方便的将这些库引入我们当前的项目: n...

ssthouse_hust
今天
1
0
大数据教程(2.13):keepalived+nginx(多主多活)高可用集群搭建教程【自动化脚本】

上一章节博主为大家介绍了目前大型互联网项目的keepalived+nginx(主备)高可用系统架构体系,相信大家应该看了博主的文章对keepalived/nginx技术已经有一定的了解,在本节博主将为大家分享k...

em_aaron
今天
5
0
Git 2.18版本发布:支持Git协议v2,提升性能

在最新的官方 Git 客户端正式版2.18中添加了对 Git wire 协议 v2 的支持,并引入了一些性能与 UI 改进的新特性。在 Git 的核心团队成员 Brandon Williams 公开宣布这一消息前几周,Git 协议 ...

六库科技
今天
0
0
Java8新特性之接口

在JDK8以前,我们定义接口类中,方法都是抽象的,并且不能存在静态方法。所有的方法命名规则基本上都是 public [返回类型] [方法名](参数params) throws [异常类型] {}。 JDK8为接口的定义带...

developlee的潇洒人生
今天
0
0
aop + annotation 实现统一日志记录

aop + annotation 实现统一日志记录 在开发中,我们可能需要记录异常日志。由于异常比较分散,每个 service 方法都可能发生异常,如果我们都去做处理,会出现很多重复编码,也不好维护。这种...

长安一梦
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部