jfy3d(剑事)BLOG

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  37 随笔 :: 0 文章 :: 363 评论 :: 0 Trackbacks
研究了几天webwork2我的习惯首先关注中文问题解决

中文这方面webwork2比struts更容易解决  不用设置fitler过滤了不错
当然webwork比strust的优势不只是这些

 jsp里都设置gb2312就可以第一

<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %><html><head><title>Untitled Document</title><meta http-equiv="Content-Type" content="text/html; charset=gb2312">

有人说不能加,加了反而乱码,我就没问题第二

在webwork.properties里加上webwork.locale=zh_CNwebwork.i18n.encoding = GB2312

上面做完之后就OK了 页面传值,数据库插入读出都OK了

不过还有需要解决的地方 用过struts的都知道<bean:message>是乱码的webwork也一样,当然这是java程序读文本文件里的中文就是乱码的 解决方法我以前知道的是用native2ascii来转换资源文件,不过转后在编辑就不认识了,修改依次转依次麻烦啊所以我还是选择修改webwork textTag的源码 ,很简单的

找到TextTag.java 然后找到下面这段

if(msg != null) {           
        try{
              msg = new String(msg.getBytes("iso-8859-1"));//加入这行就OK了,这样会影响到国际化,(可以判断如果不是zh_CN就不执行转码,我还没试过)               
            if(getId() == null)               
            {                   
                     pageContext.getOut().write(msg);                
            } else  {           
                     stack.getContext().put(getId(), msg);               
            }           
       } catch(IOException e) { 
               throw new JspException(e);           
      }       
}

struts里也可以这么做的

这样就不用在对资源文件进行native2ascii了

第三

还有会乱码的地方就是fileupload  上传中文名的文件会遇到文件名乱码问题

解决方法试在webwork.properties设置一下

webwork.multipart.parser=pell    //不要用cos

tomcat下中文解决方式和上面相同,不过还需要多加一个URIEncoding="GBK"
位置在server.xml里解决url里有中文出现的乱码
    <Connector className="org.apache.coyote.tomcat4.CoyoteConnector"
port="80"               minProcessors="5" maxProcessors="75"
               enableLookups="true" redirectPort="8443"
               acceptCount="100" debug="0" connectionTimeout="20000"
               useURIValidationHack="false" disableUploadTimeout="true" URIEncoding="GBK"/>

OK 目前我遇到的就这些了
posted on 2005-05-18 09:24 剑事 阅读(2718) 评论(7)  编辑  收藏 所属分类: webwork

评论

# re: webwork2在weblogic下和tomcat下的中文问题解决 2005-05-18 11:21 Dennis
你这样是会大量重复运行
new String(msg.getBytes("iso-8859-1"))

我不知道你有没有了解那一句到底是在在甚么(详细可以找 src.zip 或 sun 官网)
但那是相当的浪费 cpu power, 也有机会读错字的


其实只要有一个比较好的 IDE 或 editor 去修改 *.properties
就无需手动执行 native2ascii

  回复  更多评论
  

# re: webwork2在weblogic下和tomcat下的中文问题解决 2005-05-18 11:58 剑事
new String(msg.getBytes("iso-8859-1"))
当然这个肯定会影响到速度
属于根据情况选用的 一般做小网站我会这么用
便于在无IDE下修改 一般不在公司或一些不方便的情况下登录服务起上只修改,或让客户自己修改,方便自然要付出代价  回复  更多评论
  

# re: webwork2在weblogic下和tomcat下的中文问题解决 2005-05-18 16:37 Dennis
如果是以支持非 ascii charset 的 *.properties 为前提

我会选择找出它读取 properties/ResourceBundle 档的部份, 加以修改
而不是找出它显示的部份修改  回复  更多评论
  

# re: webwork2在weblogic下和tomcat下的中文问题解决 2005-05-18 18:07 剑事
同意 不过刚开始改他没改对 所以改了tag
所以现在action里的getText()会乱码  回复  更多评论
  

# re: webwork2在weblogic下和tomcat下的中文问题解决 2006-07-14 13:15 lqzq
webwork.properties就放在哪个文件夹里面。  回复  更多评论
  

# re: webwork2在weblogic下和tomcat下的中文问题解决 2006-07-14 14:15 剑事
@lqzq
classes里  回复  更多评论
  

# re: webwork2在weblogic下和tomcat下的中文问题解决 2007-04-16 00:26 ecnu-sam
form method = post  回复  更多评论
  


只有注册用户登录后才能发表评论。


网站导航: