研究了幾天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 目前我遇到的就這些了