struts2中关于jsp页面向action传值出现乱码问题
在JSP页面输入中文并传给后台的时候,常常会出现乱码问题,产生乱码的原因:java在进行传值的时候,默认用的是iso-8859-1的编码形式进行传输,而我们jsp页面常用的则是utf-8的编码形式。所以,两者不对应,在解析的时候就出现乱码现象。
有以下几种解决方案:
一:在struts.xml文件中添加
<constant name="struts.i18n.encoding" value="utf-8"></constant>
注:这里value="urt-8"指的是页面的编码格式,如果页面的编码格式是GBK,则写GBK
二:在Action中重新转码:利用.new String(name.getBytes("iso-8859-1"),"utf-8");
例:this.name= new String(name.getBytes("iso-8859-1"),"utf-8");
注:这里的name是从页面传过来的参数,只要在这里重新转码就可以了,另外,这里的utf-8依然是页面的编码格式。
但每次都这样转,太麻烦了,因此可以写一个工具类,将乱码转成utf-8
public class Tools{
//提供一个方法,将乱码转化成utf-8
public static String getNewString(String input){
String result = "";
try{
result = new String(input.getBytes("iso-8859-1"),"utf-8");
}catch(Exception e){
e.printStackTrace();
}
return result;
}
在用的时候直接调用就行了:userName = Tools.getNewString(name);
三:就是在tomcat中修改server.xml, 个人不推荐这得方法,其一:不稳定,其二:在工作中修改服务器的配置文件不是一件容易的事情,所以这里就不举例说明。
四:CharacterEncodingFilter的使用,但这个东西不是万能的,但有时候没有它就会很麻烦,所以还是加上,以防万一,但需要说明一点:这个filter只对post请求有效, get请求一律忽略。例:在web.xml中如下配置:
<!--字符编码-->
<filter>
<filter-name>CharacterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
struts2中关于jsp页面向action传值出现乱码问题的更多相关文章
- <转> jsp页面向action传值的方法(最后一种简单)
多的不说,直接上代码; struts.xml代码: <?xml version="1.0" encoding="UTF-8"?> <!DOCT ...
- struts2中的jsp值传到后台action接收的三种方法
struts2中的Action接收表单传递过来的参数有3种方法: 如,登陆表单login.jsp: <form action="login" method="pos ...
- JSP中页面向Action传递参数的几种方式
<form name="ThisForm" method="POST" action="index.jsp"> form是表单, ...
- struts2 页面向Action传参方式
1.基本属性注入 我们可以直接将表单数据项传递给Action,而Action只需要提供基本的属性来接收参数即可,这种传参方式称为基本属性注入.例如 jsp页面: <s:form method=& ...
- Struts2中关于"There is no Action mapped for namespace / and action name"的总结
今天在调试一个基础的Struts2框架小程序.总是提示"There is no Action mapped for namespace / and action name"的错误. ...
- struts2中错误There is no Action mapped for namespace [/] and action name [] associated with context path
1 There is no Action mapped for namespace [/] and action name [] associated with context path [/Stru ...
- 在SpringMVC中,jsp和后台互相传值
如题,这个是以前做的笔记,现在搬到博客上...... package com.ruide.action; import java.util.HashMap; import java.util.Ma ...
- jnhs-SpringMVC jsp页面向controller传递参数的五种方式
一共是五种传参方式: 一:直接将请求参数名作为Controller中方法的形参 public String login (String username,String password) : 解 ...
- jsp页面向后台传值出现乱码的问题
1.采用decode()方法 页面: Url: '<%=path%>/sfyh/infodata.jsp?type='+encodeURI(ss) , 后台: String result ...
随机推荐
- hihocoder 1582 : Territorial Dispute(凸包)
传送门 题意 略 分析 求一个凸包即可 1.所有点在凸包上且点数>3,令凸包上第1,3点为'A',其余点为'B' 2.部分点在凸包上,令凸包上点为'A',其余点为'B' 3.无可行情况 附代码 ...
- CF580D Kefa and Dishes 【状压dp】By cellur925
题目传送门 友情链接:new2zydalao%%% 一篇优秀的状压文章 题目大意:$n$个菜有$k$个规则,如果kefa在吃完第$xi$个菜之后吃了第$yi$个菜(保证$xi$.$yi$不相等), ...
- LuoguP2055 [ZJOI2009]假期的宿舍【二分图最大匹配】By cellur925
题目传送门 这道题开始感觉不出是二分图最大匹配的qwq.但是今天学了匈牙利算法,想来做几个题qwq.做这个题的时候想了很久它哪里是二分图,脑子里是“两列,每列有很多点的那种图 qwq.” 然后看了题解 ...
- 使用Git分布式版本控制系统
GIT(分布式版本控制系统) Git是一款免费.开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目. Git是一个开源的分布式版本控制系统,可以有效.高速的处理从很小到非常大的项目版本 ...
- Python: How to iterate list in reverse order
#1 for index, val in enumerate(reversed(list)): print len(list) - index - 1, val #2 def reverse_enum ...
- rac 添加 资源
10g : 自动化.监控.os,存储,底成,网络,规范
- ISCSI存储
slave-147作为服务端 需要安装的软件 [root@slave-147 ~]# yum install -y scsi-target-utils slave-148和slave-149作为客户端 ...
- RHEL6.5、RHEL7.2忘记ROOT密码恢复小结
RHEL6.5忘记root密码恢复步骤 RHEL7.2恢复密码步骤 5.耐心等待重启完成即可实现重置root密码 也可以按如下做法 依次执行chroot /sysroot/,passwd===> ...
- [转]VC中调用外部exe程序方式
本文转自:http://blog.sina.com.cn/s/blog_486285690100ljwu.html 目前知道三种方式:WinExec,ShellExecute ,CreateProce ...
- P3371 【模板】单源最短路径
题目描述 如题,给出一个有向图,请输出从某一点出发到所有点的最短路径长度. 输入输出格式 输入格式: 第一行包含三个整数N.M.S,分别表示点的个数.有向边的个数.出发点的编号. 接下来M行每行包含三 ...