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

王朝html/css/js·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

该方法已知适用的版本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"/>

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航