研究了幾天webwork2我的習(xí)慣首先關(guān)注中文問(wèn)題解決
中文這方面webwork2比struts更容易解決 不用設(shè)置fitler過(guò)濾了不錯(cuò)
當(dāng)然webwork比strust的優(yōu)勢(shì)不只是這些
jsp里都設(shè)置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">
有人說(shuō)不能加,加了反而亂碼,我就沒(méi)問(wèn)題第二
在webwork.properties里加上webwork.locale=zh_CNwebwork.i18n.encoding = GB2312
上面做完之后就OK了 頁(yè)面?zhèn)髦?,?shù)據(jù)庫(kù)插入讀出都OK了
不過(guò)還有需要解決的地方 用過(guò)struts的都知道<bean:message>是亂碼的webwork也一樣,當(dāng)然這是java程序讀文本文件里的中文就是亂碼的 解決方法我以前知道的是用native2ascii來(lái)轉(zhuǎn)換資源文件,不過(guò)轉(zhuǎn)后在編輯就不認(rèn)識(shí)了,修改依次轉(zhuǎn)依次麻煩啊所以我還是選擇修改webwork textTag的源碼 ,很簡(jiǎn)單的
找到TextTag.java 然后找到下面這段
if(msg != null) {
try{
msg = new String(msg.getBytes("iso-8859-1"));//加入這行就OK了,這樣會(huì)影響到國(guó)際化,(可以判斷如果不是zh_CN就不執(zhí)行轉(zhuǎn)碼,我還沒(méi)試過(guò))
if(getId() == null)
{
pageContext.getOut().write(msg);
} else {
stack.getContext().put(getId(), msg);
}
} catch(IOException e) {
throw new JspException(e);
}
}
struts里也可以這么做的
這樣就不用在對(duì)資源文件進(jìn)行native2ascii了
第三
還有會(huì)亂碼的地方就是fileupload 上傳中文名的文件會(huì)遇到文件名亂碼問(wèn)題
解決方法試在webwork.properties設(shè)置一下
webwork.multipart.parser=pell //不要用cos
tomcat下中文解決方式和上面相同,不過(guò)還需要多加一個(gè)URIEncoding="GBK"
位置在server.xml里解決url里有中文出現(xiàn)的亂碼
<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 目前我遇到的就這些了
中文這方面webwork2比struts更容易解決 不用設(shè)置fitler過(guò)濾了不錯(cuò)
當(dāng)然webwork比strust的優(yōu)勢(shì)不只是這些
jsp里都設(shè)置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">
有人說(shuō)不能加,加了反而亂碼,我就沒(méi)問(wèn)題第二
在webwork.properties里加上webwork.locale=zh_CNwebwork.i18n.encoding = GB2312
上面做完之后就OK了 頁(yè)面?zhèn)髦?,?shù)據(jù)庫(kù)插入讀出都OK了
不過(guò)還有需要解決的地方 用過(guò)struts的都知道<bean:message>是亂碼的webwork也一樣,當(dāng)然這是java程序讀文本文件里的中文就是亂碼的 解決方法我以前知道的是用native2ascii來(lái)轉(zhuǎn)換資源文件,不過(guò)轉(zhuǎn)后在編輯就不認(rèn)識(shí)了,修改依次轉(zhuǎn)依次麻煩啊所以我還是選擇修改webwork textTag的源碼 ,很簡(jiǎn)單的
找到TextTag.java 然后找到下面這段
if(msg != null) {
try{
msg = new String(msg.getBytes("iso-8859-1"));//加入這行就OK了,這樣會(huì)影響到國(guó)際化,(可以判斷如果不是zh_CN就不執(zhí)行轉(zhuǎn)碼,我還沒(méi)試過(guò))
if(getId() == null)
{
pageContext.getOut().write(msg);
} else {
stack.getContext().put(getId(), msg);
}
} catch(IOException e) {
throw new JspException(e);
}
}
struts里也可以這么做的
這樣就不用在對(duì)資源文件進(jìn)行native2ascii了
第三
還有會(huì)亂碼的地方就是fileupload 上傳中文名的文件會(huì)遇到文件名亂碼問(wèn)題
解決方法試在webwork.properties設(shè)置一下
webwork.multipart.parser=pell //不要用cos
tomcat下中文解決方式和上面相同,不過(guò)還需要多加一個(gè)URIEncoding="GBK"
位置在server.xml里解決url里有中文出現(xiàn)的亂碼
<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 目前我遇到的就這些了