上一篇:TopStyle Pro 使用技巧 >>
21分钟解决struts国际化和中文问题
1. 设置所有jsp页面的charset为utf-8. 即在每个jsp页面前加上<%@ page language="java" contenttype="text/html;charset=utf-8" %>. java是通过unicode实现国际化的,然而unicode和utf-8是一一对应的关系.
2. jsp页面里面没有硬编码的文字(即页面的文字都是从*.properties资源文件里面读出来的,用<bean:message key="keyword in property file">读取即可.) 资源文件的配置也不多说了,在web.xml里面配配就好. 下面假设英文的资源文件叫applicationresources_en.properties ,中文的源文件叫applicationresources_xx.properties(value都是中文的) . 用jdk自带的native2ascii工具把中文的资源文件里面的中文转化为为用ascii表示的unicode编码, 命令如下: native2ascii -encoding gbk applicationresources_xx.properties applicationresources_zh.properties . (中文操作系统里面默认是gbk,它是gb2312的扩充集),好了,如果你不用form传中文,不用入库,那么你成功了.打开浏览器在internet选项里面设置一下语言试试. 容易吧,呵呵. 下面的步骤涉及到入库问题.
3. 写一个filter类,一个最简单的代码例子如下:
import java.io.*;
import javax.servlet.*;
public class charsetfilter implements filter{
private filterconfig config = null;
private string defaultencode = "utf-8";
public void init(filterconfig config) throws servletexception {
this.config = config;
if(config.getinitparameter("charset")!=null){
defaultencode=config.getinitparameter("charset");
}
}
public void destroy() {
this.config = null;
}
public void dofilter(servletrequest request, servletresponse response,
filterchain chain) throws ioexception, servletexception {
servletrequest srequest=request;
srequest.setcharacterencoding(defaultencode);
chain.dofilter(srequest,response);
}
}
然后你需要在web.xml里面设置一下filter,加入下面的即可(注意,如果你是在jbx里面开发,声明filter一定要在声明<servlet>前面,否则会报错,但是用的时候好像又没有问题.)
<filter>
<filter-name>character encoding</filter-name>
<filter-class>com.alex.util.charsetencodingfilter</filter-class>
</filter>
<filter-mapping>
<filter-name>character encoding</filter-name>
<servlet-name>action</servlet-name>
</filter-mapping>
4. 接下来是写一个converter类,在入库前调用encode(),出库的时候调用decode()就ok. 下面是一个简单例子:
public class converter {
public converter() {
}
public static string encode(string str) {
byte temp [];
temp = str.getbytes();
try {
//system.out.println("in before convert: " + str);
str = new string(temp , "iso-8859-1");
//system.out.println("in after convert: " + str);
}
catch(exception e) {
system.err.println("convert error: " + e);
}
return str;
}
public static string decode(string str) {
byte temp [];
try {
//system.out.println("out before convert: " + str);
temp = str.getbytes("iso-8859-1");
str = new string(temp,"gbk");
//system.out.println("out after convert: " + str);
}
catch(exception e) {
system.err.println("convert error: " + e);
}
return str;
}
}
5. 应该都ok了吧,我就这样解决了struts的中文问题和国际化问题. 小弟菜鸟一个,如有错误请高手赐教
()
下一篇:WindowsNT/2K/XP/2K3系统实用工具集 >>
相关文章:
- · NT系统的门卫——SAM
- · 打造功能更强大更安全的Windows XP启动密码
- · 秘技!让毒霸和瑞星同时为你站岗
- · 优化Windows预读功能为系统提速
- · 远程线程嵌入技术
- · 秘技:突破SP2的线程限制
- · 强化TCPIP堆栈安全-抵御SYNICMPSNMP攻击
- · 解决XP局域网访问故障十八招秘技
- · 关于Linux下病毒的话题
- · 远程克隆你的系统
- · 教你辨认MP3随身听音质的好坏
- · WinXP无法安装DX9的解决方法
- · 一次真实的DDoS攻击防御实战
- · MSSQL入侵时可以用到的代码
- · 玩转GOOGLE的十九招秘技
- · 病毒杀不死的原因分析和相应对策
- · 让你的XP一分钟成为正版
- · 利用注册表管理IP地址
- · 笔记本电脑性能优化技巧
- · 让MSN调用mAxtHon
- · 恶意代码(网页病毒)[破解方法]
- · 减少QQ内存占用的一则方法
- · 多个网卡绑定一个IP地址
- · 反击内奸的无理攻击
- · 电脑特技与虚拟演员—计算机蜜罐技术
- · 列示出你安装了哪些补丁的脚本
- · CT版奇迹SF终极防黑手册
- · IDS的自防护原则与技术途径
- · QQ病毒的克星--QQAV
- · 用google检索密码
- · Win XP系统任务栏实用技巧总集
- · 开启终端的最简单方法全攻略
- · SQL安全设置攻略
- · 解决QQ视频假死现象
- · 搜索引擎技术核心揭密
- · 网络代理工具集锦
- · FlashGet使用完全集锦
- · XP系统快捷地整理硬盘碎片
