JSF 提交后backbean中出现乱码的问题,求解

问题描述

一个小系统JSF+JDBC完成(开发环境myeclipse6.5+tomcat5.0)一只能正常使用无乱码。可是这两天把旧的代码拿出来准备改点的东西发现,只要是页面上的值提交到后台bean就变成了乱码。目前状态:1.页面显示正常无乱码,页面文件编码格式GB2312代码如下:%@pagecontentType="text/html;charset=gb2312"%><%@tagliburi="http://java.sun.com/jsf/core"prefix="f"%><%@tagliburi="http://java.sun.com/jsf/html"prefix="h"%><%@tagliburi="http://myfaces.apache.org/tomahawk"prefix="t"%><html><head><metahttp-equiv="Content-Type"content="text/html;charset=gb2312"/><title>供应商人员信息列表</title>2.提交后后台监控得到,输入的中文变为'???è?????'3.由于提交方式为post,根据网上的推荐方法,加了个过滤器,核心代码为:request.setCharacterEncoding("gb2312");单步跟踪发现,在过滤器执行chain.doFilter(request,response);之前request的编码格式为gb2312,但是一到后台beanrequest的编码格式变为iso-88593-1,中文为乱码4.系统历史的备份程序我全部在恢复过,但是所有可以确认完全正确的版本都有这样的问题,而且是系统中所有只要是post提交到后台bean的操作,后台bean中中文全是乱码研究了好多天了,一直解决不了,急!!!望各位高手指点!

解决方案

解决方案二:
写漏了几个:5.在我的myeclipse+tomcat5.5/tomcat6.0环境新建JSF项目,页面数据提交后台bean中文显示正常6.刚找同事的机器试了下,我的程序在他的weblogic上中文在后台bean中午乱码,但是tomacat一样有乱码7.tomcat的server.xml文件中我已加了URIEncoding='GBK',还是不能解决问题
解决方案三:
加上:<%request.setCharacterEncoding("gb2312");%>
解决方案四:
引用2楼mike_24的回复:

加上:<%request.setCharacterEncoding("gb2312");%>

3.由于提交方式为post,根据网上的推荐方法,加了个过滤器,核心代码为:request.setCharacterEncoding("gb2312");我写过滤器也是一样的效果吧,还是没用啊,郁闷啊!
解决方案五:
帮顶!!!!!
解决方案六:
jsp编译成类的时候没指定编码格式哦!!其次java编译成类的时候是按照JVM默认编码执行的,先根据文件编码然后。。。。。那个BEAN,UE另存为gb2312格式文件。其次是过滤器最好遵照WEB程序处理流程。否则一系列传值过滤反倒影响你的程序。导致原因:前期工程没有框架规划。工作环境搭建不利。如果说的不错Eclipse-->文件编码还保留在原始设置状态。
解决方案七:
引用5楼APOLLO_TS的回复:

jsp编译成类的时候没指定编码格式哦!!其次java编译成类的时候是按照JVM默认编码执行的,先根据文件编码然后。。。。。那个BEAN,UE另存为gb2312格式文件。其次是过滤器最好遵照WEB程序处理流程。否则一系列传值过滤反倒影响你的程序。导致原因:前期工程没有框架规划。工作环境搭建不利。如果说的不错Eclipse-->文件编码还保留在原始设置状态。

呵呵,有可能是这个问题,请问我现在该如何处理呢
解决方案八:
文件的格式我检查了下的,是myeclipse中显示的是gb2312现在还是没办法啊,望高手赐教
解决方案九:
LZ这悟性。。。。在回答你一次吧!jsp编译成类的时候指定编码格式!!----<%@pagelanguage="java"contentType="text/html;charset=gb2312"pageEncoding="gb2312"%>web.xml加入过滤器,没有就用自己写的那个,也可以导入这个jar<filter><filter-name>pageEncodingFilter</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><init-param><param-name>encoding</param-name><param-value>gb2312</param-value></init-param><init-param><param-name>forceEncoding</param-name><param-value>true</param-value></init-param></filter><filter-mapping><filter-name>pageEncodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping>如果还出问题,就UPDATE工程环境,redeployPJ
解决方案十:
中间碰到中文乱码,应该说所有的情况都碰到了吧,解决也是曲折的,经过摸索,总结如下:1、所有页面都用UTF-8。2、写过滤器,设置request.setCharacterEncoding("UTF-8")。3、javascript脚本里用encodeURI(str)。4、适当的时候,在jsp里用java.net.URLDecoder.decode(request.getParameter("str"),"UTF-8")。5、最容易忽略的是使用"":value="<%=paraFiles%>",一定要有引号。例子源码:http://download.csdn.net/source/965319
解决方案十一:
//选择使用的字符编码if(ignore||(request.getCharacterEncoding()==null)){Stringencoding=selectEncoding(request);if(encoding!=null){request.setCharacterEncoding(encoding);request.getParameterMap();}}//Passcontrolontothenextfilterchain.doFilter(request,response);发现在过滤器代码中加上request.getParameterMap();解决了问题。感觉是过滤器执行request.setCharacterEncoding(encoding);在backbean里面获取数据前编码被改变过。而我的程序这个过程中只在faceservlet中执行了的。现在只能认为是程序在不同的tomcat版本中切换照成的乱码(我这个小系统以前是在tomcat5中编译执行,现在时在tomca5.5和tomcat6测试)

时间: 2024-08-02 22:46:24

JSF 提交后backbean中出现乱码的问题,求解的相关文章

uft-Uft参数化后Data中出现乱码

问题描述 Uft参数化后Data中出现乱码 此为UFT自带小飞机测试报告 Name为姓名 Tickets为票数 如图都是乱码 解决方案 看下字符的编码对不对

myclipse10在jsp中提交表单出现中文乱码

问题描述 myclipse10在jsp中提交表单出现中文乱码 在Myclipse10中,jsp提交了一个表单, 提交到另一个表单后,用 (String)request.getParameter(""stuname"") 获取时出现了中文乱码,无法显示正常的汉字;jsp字体已经设置为utf-8,也写了request.setCharacterEncoding(""utf-8"");求问题原因. 解决方案 jsp头是这样吗? <

mysql-java Web中提交到数据库的汉字乱码问题怎么解决?可能是哪些问题?

问题描述 java Web中提交到数据库的汉字乱码问题怎么解决?可能是哪些问题? 这个问题出现在九宫格日记网这个项目上,在添加日记题目后,然后预览(此时没乱码),然后保存以后,就显示的乱码.在mysql数据库里面看的那个题目也是乱码的?一向数据库插入汉字,再刷新数据库,上面就会乱码.可能有哪些方面的问题?请教各位高手? 解决方案 看你数据库的默认编码方式 最好是utf-8 你如果界面出现乱码就用request和response来解决乱码 解决方案二: 解决java web 乱码问题Java WE

数据-关于JSp中表单内容提交后的乱码的问题

问题描述 关于JSp中表单内容提交后的乱码的问题 这是我开头的设置 <%@ page contentType="text/html" pageEncoding="GBK"%> <%@ page import="java.io.*"%> <%@ page import="java.util.*"%> 中间又写了 <%request.setCharacterEncoding("G

为什么链表在文件中输出后显示的是乱码?

问题描述 为什么链表在文件中输出后显示的是乱码? int ListInsert( linklist &head) { system("cls"); char ch[2]; linklist *r,*s; FILE *fp; r=head; s=LEN; printf("是否添加学生成绩信息(Y/N):"); scanf("%s",ch); printf("请输入商品的id号:"); scanf("%s&quo

javascript如何调用C#后代码中的过程 和ASP.NET调用JS乱码解决方案

asp.net|javascript|js|过程|解决 javascript如何调用C#后代码中的过程 和ASP.NET调用JS乱码解决方案  +++++++++++++++++第一种情况: 1.后台方法: protected string CsharpVoid(string strCC){  return strCC; } 2.javascript 调用<script  language="javascript">   var s = "<%=Csharp

在win7中整理磁盘碎片后文件夹中出现乱码怎么办?

  其实很多朋友都会在电脑操作中涉及到整理磁盘碎片,因为咱们操作电脑的时间越久,那么磁盘中出现的碎片也就相应的越多,久而久之,便会造成磁盘运行变慢,因此,磁盘碎片整理是咱们定期定时需要做的事情,这也是win7旗舰版64位系统下载系统优化的一项重要工作.不过最近却有朋友在执行这项优化工作的时候发现了一个奇怪的现象,什么现象?该网友说,在win7旗舰版中整理磁盘碎片后文件夹中出现乱码,这样会导致磁盘中的很多文件夹都无法正常使用,那么出现这样的问题,我们要如何解决呢?下面,就让小编来详细的介绍一下吧!

js-JS从单选框中选择一个值后,点击提交后显示出该值!请问我的代码怎么修改啊啊?

问题描述 JS从单选框中选择一个值后,点击提交后显示出该值!请问我的代码怎么修改啊啊? <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>无标题文档</title> <script type="text/javascript" language="javascript

jsp- My97DatePicker文本框中出现了日期,如何保持在这个日期被表单提交后而不被清空

问题描述 My97DatePicker文本框中出现了日期,如何保持在这个日期被表单提交后而不被清空 My97DatePicker文本框中出现了日期,如何保持在这个日期被表单提交后而不被清空 解决方案 页面提交完返回的时候把值再带回来,然后在页面赋值-- 解决方案二: 做表单提交后,页面的js控制