首页 > 开发 > 综合 > 正文

JSF中文输入乱码问题解决方法

2024-07-21 02:15:09
字体:
来源:转载
供稿:网友
该方法已知适用的版本tomact5.0.18,tomcat5.0.9。
已知不适用的版本为tomcat5.0.28。
问题描述:
在inputtext中输入中文,然后在输出,显示为乱码。
解决方法:
1、自定义转器
package util;
import java.util.map;
import javax.faces.component.uicomponent;
import javax.faces.convert.converter;
import javax.faces.context.facescontext;
import javax.faces.convert.converterexception;

public class stringconverter implements converter {
 public object getasobject(facescontext context, uicomponent component,
   string newvalues) throws converterexception {
  string newstr = "";
  if (newvalues == null) {
   newvalues = "";
  }
  byte[] byte1 = null;
  try {
   byte1 = newvalues.getbytes("iso-8859-1");
   newstr = new string(byte1, "gb2312");
   uiinput input=(uiinput)component;//
   input.setsubmittedvalue(newstr);
  } catch (unsupportedencodingexception e) {
   e.printstacktrace();
  }

  return newstr;

 }

 public string getasstring(facescontext context, uicomponent component,
   object values) throws converterexception { 
  return (string) values;
 }
}

2、注册转换器
faces-config.xml片段
<converter>
  <converter-id>util.stringconverter</converter-id>
  <converter-class>util.stringconverter</converter-class>
</converter>

3、在页面使用转换器
<h:inputtext id="account" value="#{util.account}" required="true" styleclass="input" > 
 <f:converter converterid="utilstringconverter"/>

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表