Struts中文乱码解决方案

合集下载

中文乱码解决大全

中文乱码解决大全

SSH开发过程中的中文问题汇总作者:Rainisic来源:博客园发布时间:2012-01-11 14:26 阅读:50 次原文链接[收藏]在使用SSH开发的过程中,我们经常会因为各种各样的中文乱码问题而苦恼。

之前开发的过程中遇到过一些,但是都没有记录下来,这次,我就遇到的中文问题进行一个汇总,希望能够对大家有所帮助。

1. 平台环境参数操作系统:Windows 7 旗舰版64位JDK版本:JDK 1.6 / JDK 1.7 (此处由于JDK 7 发布不久,所以对两个版本进行测试)开发环境:Eclipse Java EE Indigo网站容器:Tomcat 7.0开发框架:Struts 2.3.1.1-GASpring 3.1.0-releaseHibernate 4.0.0-Final / Hibernate 3.6.9-Final (此处由于Hibernate 4 final 刚刚发布不久,所以对两个版本进行测试)2. 中文问题汇总(1)HTML中未指定文件编码问题描述:在HTML中未指定文件编码,在部分浏览器中将会出现中文乱码。

解决方案:在HTML的head标签中指定文档编码,代码如下(请根据DOCTYPE选择):// HTML 4.01 Transitional<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">// HTML 5<meta charset="UTF-8">(2)表单提交使用GET方法问题描述:在HTML form 中提交表单的时候使用method="get"导致中文乱码。

解决方案:form表单的method设置为post,代码如下:<form action="test" method="post"><input type="submit"/></form>(3)JSP文件中未指定文档编码类型问题描述:在JSP文件中未指定JSP文档编码,在浏览器中会出现中文乱码。

中文字符问题解决方案

中文字符问题解决方案

中文字符问题解决方案中文字符问题是指在一些特定的环境下,处理中文字符出现乱码的情况。

解决这个问题的方法有以下几种:1. 使用正确的字符编码。

中文字符通常采用UTF-8编码,对于显示中文字符的场景,如网页、文档编辑器等,需要设置正确的字符编码,才能正确显示中文字符。

使用UTF-8编码可以保证兼容性和正确显示中文字符。

2. 修改文本文件的编码方式。

当我们打开一个文本文件,发现其中的中文字符显示为乱码时,可以尝试修改文件的编码方式来解决这个问题。

常见的文本文件编码方式有ANSI、UTF-8、UTF-16等,可以通过文本编辑器或专业的编码转换工具来修改文本文件的编码方式。

3. 修改数据库的字符编码。

当我们在数据库中存储和读取中文字符时出现乱码问题,可以尝试修改数据库的字符编码。

常见的数据库字符编码包括UTF-8、GBK、GB2312等,根据具体情况选择合适的字符编码,可以通过修改数据库配置文件、执行数据库命令等方式来修改数据库的字符编码。

4. 避免混合使用不同编码方式。

在一些场景下,可能会涉及到多个系统或工具之间的数据交互,为了避免中文字符出现乱码问题,需要确保所有涉及到中文字符的系统或工具使用相同的字符编码方式,避免混合使用不同编码方式导致的乱码问题。

5. 使用专业的中文字符处理工具。

针对中文字符问题,有一些专门的工具可以进行处理,例如编码转换工具、乱码检测工具等。

这些工具可以帮助我们识别和解决中文字符乱码的问题,提高处理效率和准确性。

总的来说,解决中文字符问题需要根据具体情况采取相应的解决方案,包括设置正确的字符编码、修改文本文件或数据库的编码方式,避免混合使用不同编码方式等。

同时,借助专业的中文字符处理工具可以提高解决问题的效率和准确性。

中文参数乱码问题解决方案(精选5篇)

中文参数乱码问题解决方案(精选5篇)

中文参数乱码问题解决方案(精选5篇)第一篇:中文参数乱码问题解决方案问题1:在使用tomcat服务器时,如在跳转路径中传递中文参数会出现乱码现向!如:以和两种方式提交的变量flag在LoginServlet中用request.getParameter(“flag”);时就会出现乱码问题。

解决:在tomcat/conf/servlet.Xml中加入一段代码:debug=“0” connectionTimeout=“20000”disableUploadTimeout=“true” URIEncoding=“true”/>问题2:如果uri中转递的是参数要发送到jsp页面,则必须在接受代码的jsp页面里面还要加入代码:问题3:在jsp页面里的代码修正://如不注明是post方式则默认是get方式问题4:在servlet中的代码修正在doPost方法里面最上面的位置加上如下代码:response.setCharacterEncoding(“gb2312”);request.setCharacterEncoding(“gb2312”);第二篇:struts2 action接收到的参数中文乱码的问题struts2 action接收到的参数中文乱码的问题(2011-06-16 10:55:44)转载标签:分类:技术收藏utf-8 乱码 gb2312 字符集编码方法杂谈中文乱码,首先要区分是页面乱码、action乱码,还是数据库乱码。

大致的原理是java使用unicode编码-->window使用gbk(gb2312的扩展集)--mysql默认使用utf-8(unicode的一种编码方法),这样转来转去就乱码了^_^。

解决方法如下:1.在struts2里面,最好将所有字符都设成utf-8。

1.1 在jsp页面设定字符编码。

这边有必有说明的是如果是jsp+java bean+servlet 的方案,中文乱码很好解决,统一设成gb2312就可以了。

在eclipse中中文汉字乱码的解决方案

在eclipse中中文汉字乱码的解决方案

在eclipse中中⽂汉字乱码的解决⽅案
很多童鞋反应在吧项⽬导⼊到eclipse(myeclipse)时中⽂会有乱码,修改了编码格式后还是乱码,这⾥给⼤家介绍⼀下关于中⽂乱码时修改编码的注意事项:
1、当在eclipse中打开⼀个⽂件后发现有中⽂乱码后,千万不能修改这个⽂件内容,⼀旦改过这个⽂件的内容,那怎么修改编码也没⽤了,只能重新导⼊。

2、当打开⽂件发现乱码后第⼀步是关闭这个⽂件,然后在这个⽂件上右键,选择属性,然后选择编码,先选择utf8,然后确认保存后打开⽂件查看是否是乱码,如果还是乱码则继续关掉⽂件,右键选择属性,编码中选择gbk,确认保存后再打开⽂件。

3、基本上以上两种⽅法都能解决乱码,切记修改编码格式的时候⼀定要关闭⽂件,且不可修改过⽂件内容。

4、下⾯以我的⼀个项⽬为例,截图演⽰⼀下操作过程:
如下图所⽰,这个⽂件的中⽂有乱码:
第⼀步,先把打开的这个⽂件关闭,然后在这个⽂件上右键选择属性:
然后选择编码格式,如下图所⽰:
然后点击ok,再打开这个⽂件查看:
发现乱码已经消除了,有时候选择utf8后还是乱码,那么项⽬⽂件可能是gbk,按照上述⽅式操作,编码选择gbk即可,切记关闭⽂件和勿修改⽂件内容两点。

以上就是本次介绍的全部相关知识点,感谢⼤家的学习和对的⽀持。

中文乱码解决方法

中文乱码解决方法

中文乱码解决方法
1.使用正确的字符编码
2.转换文件编码格式
如果你打开一个文本文件或者网页时发现中文显示为乱码,可能是由
于文件的编码格式不正确导致的。

你可以尝试将文件的编码格式转换为正
确的格式。

Windows操作系统中可以使用记事本打开文件,另存为时选择
正确的编码方式即可。

Mac和Linux系统可以使用终端命令行工具进行转换,具体方法可以参考相关操作系统的文档和教程。

3.选择正确的字体
有时候中文显示为乱码是由于缺乏相应的字体文件所致。

当你打开一
个文档或者网页时,如果使用的字体不包含中文字符,那么中文可能会显
示为乱码或者方块。

解决方法是选择适合的字体。

一般来说,宋体、微软
雅黑、黑体等字体都包含了常用的中文字符,并且具有良好的兼容性。

4.更新操作系统和应用程序
乱码问题有时也可能是由于操作系统或者应用程序的bug导致的。


些bug可能会导致字符编码不正确或者字体渲染错误。

为了解决这类问题,建议你及时更新操作系统和应用程序的版本,以获取最新的修复和改进。

5.检查网络连接和网页编码
6.使用专业的文本处理工具
总结:
中文乱码问题可能由多种原因引起,包括字符编码不一致、文件格式不正确、字体缺失等。

解决方法包括使用正确的编码方式、转换文件的编码格式、选择合适的字体、更新操作系统和应用程序、检查网络连接和网页编码、使用专业的文本处理工具等。

通过以上方法,相信大家能够有效地解决中文乱码问题,提高中文字符的显示质量。

如何解决乱码问题总结

如何解决乱码问题总结
<url-pattern>/*<url-pattern>
</filter-mapping>
3.URL中的中文问题
对于直接通过在URL中传递中文参数,如“http://localhost/a.jsp?str=中文”这样的get请求,在服务端用request.getParameter("name")时返回的往往是乱码。按以上的做法设置Filter没有用,用request.setCharacterEncoding("gbk")的方式,仍然不管用。
httpServletResponse.setContentType("text/html;charset=gbk")),最好同时在JSP页面的head部分加上<meta http-equiv="Content-Type" content="text/html;charset=gbk">
·在每次要输出中文的地方主动转换编码方式,比如要在页面中输入“中文”二字,就可以用以下方式:
<%
String str="中文";
byte[] tmpbyte=str.getBtyes("ISO-8859-1");
str=new String(tmpbyte);
out.print(str);
%>
2.获取表单提交的数据时的中文乱码问题
%>
<html>
<head>
<title>中文Test</title>
<meta http-equiv="Content-Type" content="text/html;charset=gbk">

datetimepicker中文乱码

Struts2?datetimepicker?日期乱码在使用 Struts2 dateTimePicker 控件时, 9月份后会出现乱码现象。

(本人以struts2-dojo-plugin-2.2.1为例子)请替换或直接修改以下文件(并保存为UTF-8格式):struts2-dojo-plugin-2.2.1.jar\org\apache\struts2\static\dojo\nls\dojo _zh.js 和?dojo_zh-cn.js 文件1. 文件"dojo_zh.js"------------------------------------------------------------------------------dojo.provide("nls.dojo_zh");dojo.provide("dojo.i18n.calendar.nls.greg orian");dojo.i18n.calendar.nls.gregorian._built=true;dojo.provide("dojo.i18n.calendar.nls.gregorian.zh");dojo.i18n.calenda r.nls.gregorian.zh= {"days-standAlone-narrow":["日","一","二","三","四","五","六"],"eras":["公元前","公元"],"am":"上午","months-format-abbr":["一月","二月","三月","四月","五月","六月","七月"," 八月","九月","十月","十一月","十二月"],"days-format-abbr":["周日","周一","周二","周三","周四","周五","周六"],"pm":"下午","months-format-wide":["一月","二月","三月","四月","五月"," 六月","七月","八月","九月","十月","十一月","十二月"],"months-standAlone-narrow":["1月","2 月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"days-format- wide":["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],"field-weekday":"Day of the Week","dateFormat-medium":"yyyy MMM d","field-second":"Second","field-week":"Week","timeFormat-full":"HH: mm:ssz","field-year":"Year","field-minute":"Minute","timeFormat-medium":"H H:mm:ss","field-hour":"Hour","dateFormat-long":"yyyy MMMMd","field-day":"Day","field-dayperiod":"Dayperiod","field-month":"Mon th","dateFormat-short":"yy/MM/dd","field-era":"Era","timeFormat-short ":"HH:mm","timeFormat-long":"HH:mm:ss z","dateFormat-full":"EEEE, yyyy MMMM dd","field-zone":"Zone"};dojo.provide("dojo.i18n.calendar.nls.gregorianExtras"); dojo.i18n.calendar.nls.gregorianExtras._built=true;dojo.provide("dojo.i18n.calendar.nls.gregorianExtras.zh");dojo.i18n.c alendar.nls.gregorianExtras.zh= {"dateFormat-yearOnly":"yyyy'年'"};dojo.provide("dojo.i18n.calendar.nls.gregorian");dojo.i18n.calend ar.nls.gregorian._built=true;dojo.provide("dojo.i18n.calendar.nls.gregorian.zh");dojo.i18n.calenda r.nls.gregorian.zh= {"days-standAlone-narrow":["日","一","二","三","四","五","六"],"eras":["公元前","公元"],"am":"上午","months-format-abbr":["一月","二月","三月","四月","五月","六月","七月"," 八月","九月","十月","十一月","十二月"],"days-format-abbr":["周","months-format-wide":["一月","二月","三月","四月","五月"," 六月","七月","八月","九月","十月","十一月","十二月"],"months-standAlone-narrow":["1月","2 月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"days-format- wide":["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],"field-weekday":"Day of the Week","dateFormat-medium":"yyyy MMM d","field-second":"Second","field-week":"Week","timeFormat-full":"HH: mm:ssz","field-year":"Year","field-minute":"Minute","timeFormat-medium":"H H:mm:ss","field-hour":"Hour","dateFormat-long":"yyyy MMMMd","field-day":"Day","field-dayperiod":"Dayperiod","field-month":"Mon th","dateFormat-short":"yy/MM/dd","field-era":"Era","timeFormat-short ":"HH:mm","timeFormat-long":"HH:mm:ss z","dateFormat-full":"EEEE, yyyy MMMMdd","field-zone":"Zone"};dojo.provide("dojo.widget.nls.TimePicker");d ojo.widget.nls.TimePicker._built=true;dojo.provide("dojo.widget.nls.T imePicker.zh");dojo.widget.nls.TimePicker.zh={"any":"any"};dojo.provi de("dojo.widget.nls.DropdownTimePicker");dojo.widget.nls.DropdownTime Picker._built=true;dojo.provide("dojo.widget.nls.DropdownTimePicker.z h");dojo.widget.nls.DropdownTimePicker.zh={"selectTime":"Selecttime"} ;dojo.provide("dojo.widget.nls.DropdownDatePicker");dojo.widget.nls.D ropdownDatePicker._built=true;dojo.provide("dojo.widget.nls.DropdownD atePicker.zh");dojo.widget.nls.DropdownDatePicker.zh={"selectDate":"S elect adate"};2. 文件"dojo_zh-cn.js"------------------------------------------------------------------------------dojo.provide("nls.dojo_zh-cn");dojo.provide("dojo.i18n.calendar.nls.gregorian");dojo.i18n.calen dar.nls.gregorian._built=true;dojo.provide("dojo.i18n.calendar.nls.gregorian.zh_cn");dojo.i18n.cale ndar.nls.gregorian.zh_cn={"dateFormat-medium":"yyyy-M-d","field-second":"秒钟","field-week":" 周","timeFormat-full":"ahh'时'mm'分'ss'秒' z","field-year":"年","field-minute":"分钟","timeFormat-medium":"ahh:mm:ss","field-hour":"小时","dateFormat-long":"yyyy'年'M'月'd'日 '","field-day":"日","field-dayperiod":"上午/下午","field-month":" 月","dateFormat-short":"yy-M-d","field-era":"时期","timeFormat- short":"ah:mm","timeFormat-long":"ahh'时'mm'分'ss'秒'","dateFormat- full":"yyyy'年'M'月'd'日'EEEE","field-weekday":"周天","field-zone":"区域","days-standAlone-narrow":["日","一","二","三","四","五","六"],"eras":["公元前","公元"],"am":"上午","months-format-abbr":["一月","二月","三月","四月","五月","六月"," 七月","八月","九月","十月","十一月","十二月"],"days-format-abbr":["周","months-format-wide":["一月","二月","三月","四月"," 五月","六月","七月","八月","九月","十月","十一月","十二月"],"months-standAlone-narrow":["1 月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"days- format-wide":["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]};dojo.provide("dojo.i18n.calendar.nls.gregorianExtras");dojo.i18n. calendar.nls.gregorianExtras._built=true;dojo.provide("dojo.i18n.calendar.nls.gregorianExtras.zh_cn");dojo.i18 n.calendar.nls.gregorianExtras.zh_cn= {"dateFormat-yearOnly":"yyyy'年'"};dojo.provide("dojo.i18n.calendar.nls.gregorian");dojo.i18n.calend ar.nls.gregorian._built=true;dojo.provide("dojo.i18n.calendar.nls.gregorian.zh_cn");dojo.i18n.cale ndar.nls.gregorian.zh_cn={"dateFormat-medium":"yyyy-M-d","field-second":"秒钟","field-week":" 周","timeFormat-full":"ahh'时'mm'分'ss'秒' z","field-year":"年","field-minute":"分钟","timeFormat-medium":"ahh:mm:ss","field-hour":"小时","dateFormat-long":"yyyy'年'M'月'd'日 '","field-day":"日","field-dayperiod":"上午/下午","field-month":" 月","dateFormat-short":"yy-M-d","field-era":"时期","timeFormat- short":"ah:mm","timeFormat-long":"ahh'时'mm'分'ss'秒'","dateFormat- full":"yyyy'年'M'月'd'日'EEEE","field-weekday":"周天","field-zone":"区域","days-standAlone-narrow":["日","一","二","三","四","五","六"],"eras":["公元前","公元"],"am":"上午","months-format-abbr":["一月","二月","三月","四月","五月","六月"," 七月","八月","九月","十月","十一月","十二月"],"days-format-abbr":["周日","周一","周二","周三","周四","周五","周六"],"pm":"下午","months-format-wide":["一月","二月","三月","四月"," 五月","六月","七月","八月","九月","十月","十一月","十二月"],"months-standAlone-narrow":["1 月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"days- format-wide":["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]};dojo.provide("dojo.widget.nls.TimePicker");dojo.widget.nls.TimePi cker._built=true;dojo.provide("dojo.widget.nls.TimePicker.zh_cn");doj o.widget.nls.TimePicker.zh_cn={"any":"any"};dojo.provide("dojo.widget .nls.DropdownTimePicker");dojo.widget.nls.DropdownTimePicker._built=t rue;dojo.provide("dojo.widget.nls.DropdownTimePicker.zh_cn");dojo.wid get.nls.DropdownTimePicker.zh_cn={"selectTime":"Selecttime"};dojo.pro vide("dojo.widget.nls.DropdownDatePicker");dojo.widget.nls.DropdownDa tePicker._built=true;dojo.provide("dojo.widget.nls.DropdownDatePicker .zh_cn");dojo.widget.nls.DropdownDatePicker.zh_cn={"selectDate":"Sele cta date"};。

struts2传值出现乱码问题

1、在struts.xml文件中添加:<constant name="struts.i18n.encoding" value="gb2312" />页面编码格式如果是gb2312那么value值就写gb2312,页面编码如果是GBK那么value值就写GBK;总之页面什么编码格式这里的value就写什么格式。

这样简单语句话就解决了乱码问题如下:<struts><constant name="struts.i18n.encoding" value="gb2312" /><package name="com" extends="convention-default">............</struts>2、url传值到Action的乱码解决方法jsp页面 URL传中文参数到Action里面出现乱码,用过滤器和控制器都解决不了,用了我两个多小时解决这个小问题!解决方法有以下几种:第一种:在Action中用 new String(str.getBytes("ISO8859_1"), "UTF8"),进行转码,因为传递的时候,中文默人的是ISO8859_1第二种:可通过配置TOMCAT来解决此问题,具体解决方法如下:在tomcat的server.xml里,找到<Connector port="8080"maxThreads="150" minSpareThreads="25" maxSpareThreads="75"enableLookups="false" redirectPort="8443"acceptCount="100"debug="0" connectionTimeout="20000"disableUploadTimeout="true"useBodyEncodingForURI="true" URIEncoding="gbk">其中是修改 disableUploadTimeout="true" useBodyEncodingForURI="true" URIEncoding="gbk" 其方法是防止在url中出现乱码然后在每个Jsp页面添加如下代码<%@ page pageEncoding=”gb2312″%><%@ page contentType=”text/html;charset=gb2312″%><%request.setCharacterEncoding(”gb2312″);%>第三种:直接在ACTION中利用以下方法解决:request.setCharacterEncoding("gb2312");response.setCharacterEncoding("gb2312");我用的是struct1.2+Hibernate3.0+Spring2.0在做那个两个action的页面的时候,jsp页面的下拉列表通过actionForm传值给action,老是得到乱码,过滤器+server.xml+页面编码统一后,仍不能解决。

使用拦截器解决中文乱码问题

使用拦截器解决中文乱码问题Struts2拦截器解决乱码问题之前使用struts1的时候是通过写filter来处理乱码,把写的filter 搬到struts2,配置了WEB.XML发生没有效果,请求根本就没有通过filter。

原因Struts2在web.html配置了处理action请求的filter:<filter><filter-name>struts2</filter-name><filter-class>org.apache.struts2.dispatcher.FilterDi spatcher</filter-class></filter><filter-mapping><filter-name>struts2</filter-name><url-pattern>/*</url-pattern></filter-mapping>通过这个sturts filter后,在这个struts filter之前或之后配置都是发现处理乱码的filter 不起作用,所以编写拦截器还是个不错的解决乱码的方式。

1、编写自定义EncodingIntereptor拦截器import java.io.UnsupportedEncodingException;import java.util.Iterator;import javax.servlet.http.HttpServletRequest;import org.apache.struts2.StrutsStatics;import com.opensymphony.xwork2.BctionDontext;import com.opensymphony.xwork2.BctionInvocation;import com.opensymphony.xwork2.interceptor.BbstractInterc eptor;public class EncodingInterceptor extends BbstractInterceptor {/*** Struts2编码拦截器*/@Overridepublic String intercept(BctionInvocation arg0) throws Exception {// TODO Buto-generated method stubBctionDontext actionDontext = arg0.getInvocationDontext();HttpServletRequest request= (HttpServletRequest) actionDontext.get(StrutsStatics.HTTP_REQUEST);System.out.println("Encoding Intercept...");/*** 此方法体对GET 和POST方法均可*/if( request.getMethod().compareToIgnoreDase("post")>=0) {try {request.setDharacterEncoding("GBK");} catch (UnsupportedEncodingException e) {// TODO Buto-generated catch blocke.printStackTrace();}}else{Iterator iter=request.getParameterMap().values().iterator() ;while(iter.hasNext()){String[] parames=(String[])iter.next();for (int i = 0; i < parames.length; i++) {try {parames[i]=new String(parames[i].getBytes("iso8859-1"),"GBK");//此处GBK与页面编码一样} catch (UnsupportedEncodingException e) {e.printStackTrace();}}}}return arg0.invoke();}}2、Struts.xml配置<package>下注册拦截器:<interceptors><interceptor name="Encoding" class="com.disaster.util.EncodingInterceptor"></inte rceptor><interceptor-stack name="Encode"><interceptor-ref name="Encoding"></interceptor-ref><interceptor-ref name="defaultStack"></interceptor-ref><!-- 必须引入这个,否则request 不会再往下传--></interceptor-stack></interceptors>3、使用拦截器,可将其设为默认的拦截器<default-interceptor-ref name="Encode"></default-interceptor-ref>4、页面编码和页面字符编码跟设为"GBK"。

Struts2详细实例教程

Struts2(上)一、经典的MVC模式二、Struts1.x对MVC的实现三、Struts1.x的主要组件和作用组件作用ActionServlet 中央控制器Action 分控制器,调用JavaBean实现业务逻辑,Action可以分为Action、DispatchAction等不同类型ActionForm 封装参数,实现服务器验证,文件上传等Forward 转发到目的地,可以是JSP,也可以是另一个ActionStruts-config.xml 配置文件,配置有ActionForm,Action,Forward等,通过XML解析,然后使用反射技术使用该文件Struts标签库和JSTL类似,和Struts-config.xml、ActionForm、Action等对象可以紧密集成四、Struts1.x 开发实例-登录程序见案例。

五、Struts2(WebWork)的MVCStruts2的MVC架构六、Struts2的主要组件组件作用FilterDispatcher 起中央控制器作用的过滤器Action 处于Model层的Action,调用JavaBean实现业务逻辑struts.xml 核心配置文件,配置有Action、Result等result 和forward类似,转发的目的地,支持多种视图技术。

七、Struts2的实例-登录在MyEclipse环境中建立一个新的web工程,名称“Struts2Login”,存放路径“f:\Struts2Login”。

在Struts2.0.11版本中找到war包struts2-blank-2.0.11.war,解开该war包,在WEB-INF/lib 目录下复制出所有的jar包,这些jar包就是一个Struts2程序所需要的基础jar包,把它们复制到新建的web工程的WEB-INF/lib目录中。

在src目录下建立一个类,包名mypack,类名UserAction,其代码如下:package mypack;import com.opensymphony.xwork2.ActionSupport;public class UserAction extends ActionSupport {private String username;private String userpass;public String getUsername() {return username;}public void setUsername(String username) {ername = username;}public String getUserpass() {return userpass;}public void setUserpass(String userpass) {erpass = userpass;}@Overridepublic String execute() throws Exception {if ("Mike".equals(username) && "123".equals(userpass)|| "张三".equals(username) && "abc".equals(userpass))return "success";elsereturn "error";}}在src目录下建立Struts2的配置文件struts.xml,内容如下:<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN""/dtds/struts-2.0.dtd"><struts><!-- 定义包管理配置的action 继承struts-default.xml中的配置 --><package name="actions" extends="struts-default"><!-- 定义Action(login.action) --><action name="login" class="erAction"><!-- 定义转发路径对应的字符串名 --><result name="success">/Success.jsp</result><result name="error">/Error.jsp</result></action></package></struts>修改web.xml,在其中加入一个过滤器,过滤/*路径。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Struts中文乱码解决方案
一.在Action类中的解决方法:
调用下列方法即可
final public class Chinese {
public static String convert(String str){
try{
byte[] bytes=str.getBytes("ISO-8859-1");
return new String(bytes,"UTF-8");
}
catch(Exception e){
return str;
}
}
}
例如:String chaosChinese; // chaosChinese为包含乱码的字符串,则
String result= Chinese.convert(chaosChinese) // result 为正确的中文字符串二.在ActionForm类中的解决方法:
在ActionForm中的reset方法中增加下列语句即可
request.setCharacterEncoding(“GBK”);
public void reset(ActionMapping mapping, HttpServletRequest request) { // TODO Auto-generated method stub
try{
request.setCharacterEncoding(“GBK”);
}
catch(UnsupportedEncodingException ee){}
//其它语句
}
请求参数中的中文乱码问题解决方案
在获得用户提交的带有汉字的请求数据时,中文会出现乱码,下面的方法利用覆盖机制解决了这个问题。

基本步骤如下:
第一步:设计一个从继承的类,并覆盖方法processPreprocess()
import java.io.UnsupportedEncodingException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.RequestProcessor;
//解决中文乱码问题
public class SelfRequestProcessor extends RequestProcessor { public SelfRequestProcessor(){
}
public boolean processPreprocess(HttpServletRequest request,HttpServletResponse rsponse){
try{
//统一字符集为"gb2312"
request.setCharacterEncoding("gb2312");
}
catch(UnsupportedEncodingException e){
e.printStackTrace();
}
return true;
}
}
第二步:配置struts-config.xml文件,在其中添加元素<controller>
<controller processorClass="common.SelfRequestProcessor" />。

相关文档
最新文档