亚洲伊人久久成综合人影院,亚洲宅男永久在线,亚洲第一视频网站http://m.tkk7.com/daiyinchuan/category/16845.htmlNothing is particularly hard if you divide it into small jobs.zh-cnThu, 01 Mar 2007 01:20:35 GMTThu, 01 Mar 2007 01:20:35 GMT60[轉帖]"struts中文問題","struts國際化問題"終極解決方案http://m.tkk7.com/daiyinchuan/articles/78742.html有琴逍遙有琴逍遙Thu, 02 Nov 2006 10:13:00 GMThttp://m.tkk7.com/daiyinchuan/articles/78742.htmlhttp://m.tkk7.com/daiyinchuan/comments/78742.htmlhttp://m.tkk7.com/daiyinchuan/articles/78742.html#Feedback0http://m.tkk7.com/daiyinchuan/comments/commentRss/78742.htmlhttp://m.tkk7.com/daiyinchuan/services/trackbacks/78742.html實現Struts的國際化,其實一切并不復雜,下面是具體步驟:

0.遇到的問題(這些問題也許不會同時出現)
a.中文數據從數據庫中到jsp中后就變成了"????"
b.做好的中文properties文件,其中的中文value在頁面顯示亂碼
c.jsp文件中的中文到瀏覽器后顯示時也是亂碼(建議不要在jsp文件中輸入中文,盡量放在properties文件中)
d.由jsp傳給bean的中文值,再由bean傳回頁面又是亂碼
e.當更換本地瀏覽器的語言選項時,Web應用程序不能自動根據你的locale選擇合適的*.properties文件。導致Web應用程序不能國際化。

1.環境:
Web服務器: Tomcat 5.0.19
操作系統: Win2000 Server
JVM : jdk 1.4
數 據 庫: Oracle 8.1.7
開發工具: struts studio 5.2 pro for eclipse

2.先將所有*.jsp 網頁中開頭處加入
<%@ page language="java" contentType="text/html; charset=utf-8" %>
再設置<html:html locale = "true">

3.然后編輯好兩個*.properties文件,放在classes文件夾下你指定的地方,這里是放在/web-inf/classes/com/wiley 下,它們分別是:
ApplicationResources.properties (英文資源文件)
ApplicationResources_zh.properties (中文資源文件)
隨便用什么工具編寫都行啊!

4.將ApplicationResources_zh.properties轉碼成gb2312。上面引文說要轉成UTF-8,結果我試了,不行。轉成gb2312就行了,操作是。
將ApplicationResources_zh.properties更名為ApplicationResources_xx.properties
在DOS命令行進入ApplicationResources_xx.properties所在的文件夾
使用命令:native2ascii -encoding gb2312 ApplicationResources_xx.properties

ApplicationResources_zh.properties(至于你為什么會出現“native2ascii不是內部命令”,請查其它資料,可能你要設置環境變量,因為他是jdk的文件夾bin下的一個應用程序)

5.接下來配置struts-config.xml,很簡單,我們加入:
<message-resources parameter="com.wiley.ApplicationResources"/> 就行了;

到此已能解決大多數中文問題。如上面所說的a,b,e 現在打開瀏覽器,選擇菜單:工具》internet選項》

語言,將“中文-中國[zh-cn]”刪掉,添加一個“英語-英國[zh-gb]”確定后,重啟Tomcat,輸入網址你就會發現,你的頁面的文本信息就會用的是ApplicationResources.properties (英文資源文件)中的內容。如果換回“中文-中國[zh-cn]”,它就會顯示ApplicationResources_zh.properties (中文資源文件)中的中文內容。

至于問題“c.jsp文件中的中文到瀏覽器后顯示時也是亂碼” 你就要用與第4步類似的方法來重新對*.jsp 文件編碼,這時-encoding的參數就要用UTF-8了,如果你用的也是struts studio 5.2 pro for eclipse工具,這一步就免了。它會自動用UTF-8的格式存儲。
至于問題“d.由jsp傳給bean的中文值,再由bean傳回頁面又是亂碼”的解決,我只是加了個過濾器。
你可以現在web.xml中加入:

<filter>
<filter-name>Set Character Encoding</filter-name>
<filter-class>com.wiley.SetCharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
<init-param>
<param-name>ignore</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Set Character Encoding</filter-name>
<servlet-name>action</servlet-name>
</filter-mapping>

然后在你指定的包內加個java文件 我放在了/web-inf/classes/com/wiley 里,下面是源代碼:
/*
* XP Forum
*
* Copyright (c) 2002-2003 RedSoft Group. All rights reserved.
*
*/
package com.huahang.tj.struts.filters;

import javax.servlet.*;
import java.io.IOException;

/**
* <p>Filter that sets the character encoding to be used in parsing the
* incoming request, either unconditionally or only if the client did not
* specify a character encoding. Configuration of this filter is based on
* the following initialization parameters:</p>
* <ul>
* <li><strong>encoding</strong> - The character encoding to be configured
* for this request, either conditionally or unconditionally based on
* the <code>ignore</code> initialization parameter. This parameter
* is required, so there is no default.</li>
* <li><strong>ignore</strong> - If set to "true", any character encoding
* specified by the client is ignored, and the value returned by the
* <code>selectEncoding()</code> method is set. If set to "false,
* <code>selectEncoding()</code> is called <strong>only</strong> if the
* client has not already specified an encoding. By default, this
* parameter is set to "true".</li>
* </ul>
*
* <p>Although this filter can be used unchanged, it is also easy to
* subclass it and make the <code>selectEncoding()</code> method more
* intelligent about what encoding to choose, based on characteristics of
* the incoming request (such as the values of the <code>Accept-Language</code>
* and <code>User-Agent</code> headers, or a value stashed in the current
* user′s session.</p>
*
* @author <a href="mailto:jwtronics@yahoo.com">John Wong</a>
*
* @version $Id: SetCharacterEncodingFilter.java,v 1.1 2002/04/10 13:59:27 johnwong Exp $
*/
public class SetCharacterEncodingFilter implements Filter {

// ----------------------------------------------------- Instance Variables


/**
* The default character encoding to set for requests that pass through
* this filter.
*/
protected String encoding = null;


/**
* The filter configuration object we are associated with. If this value
* is null, this filter instance is not currently configured.
*/
protected FilterConfig filterConfig = null;


/**
* Should a character encoding specified by the client be ignored?
*/
protected boolean ignore = true;


// --------------------------------------------------------- Public Methods


/**
* Take this filter out of service.
*/
public void destroy() {

this.encoding = null;
this.filterConfig = null;

}


/**
* Select and set (if specified) the character encoding to be used to
* interpret request parameters for this request.
*
* @param request The servlet request we are processing
* @param result The servlet response we are creating
* @param chain The filter chain we are processing
*
* @exception IOException if an input/output error occurs
* @exception ServletException if a servlet error occurs
*/
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain)
throws IOException, ServletException {

// Conditionally select and set the character encoding to be used
if (ignore || (request.getCharacterEncoding() == null)) {
String encoding = selectEncoding(request);
if (encoding != null)
request.setCharacterEncoding(encoding);
}

// Pass control on to the next filter
chain.doFilter(request, response);

}


/**
* Place this filter into service.
*
* @param filterConfig The filter configuration object
*/
public void init(FilterConfig filterConfig) throws ServletException {

this.filterConfig = filterConfig;
this.encoding = filterConfig.getInitParameter("encoding");
String value = filterConfig.getInitParameter("ignore");
if (value == null)
this.ignore = true;
else if (value.equalsIgnoreCase("true"))
this.ignore = true;
else if (value.equalsIgnoreCase("yes"))
this.ignore = true;
else
this.ignore = false;

}


// ------------------------------------------------------ Protected Methods


/**
* Select an appropriate character encoding to be used, based on the
* characteristics of the current request and/or filter initialization
* parameters. If no character encoding should be set, return
* <code>null</code>.
* <p>
* The default implementation unconditionally returns the value configured
* by the <strong>encoding</strong> initialization parameter for this
* filter.
*
* @param request The servlet request we are processing
*/
protected String selectEncoding(ServletRequest request) {

return (this.encoding);

}

}//EOC
到此我遇到的中文問題已全部得到解決,并從中理解到struts的國際化的深刻含義。
我個人覺得struts作為一個功能強大的應用框架,應該早就考慮到它的國際化問題,并在實際應用中不會很復雜,只要我們遵循一些規則,就可以盡情享受struts給我們帶來的無窮樂趣。希望以上所述對大家有所幫助。??



有琴逍遙 2006-11-02 18:13 發表評論
]]>
主站蜘蛛池模板: 好男人www免费高清视频在线| 久久99青青精品免费观看| 久久不见久久见中文字幕免费| 自怕偷自怕亚洲精品| 免费国产黄网站在线观看| 亚洲黄色片在线观看| 最近免费中文字幕大全免费| 亚洲国产精品白丝在线观看| 99久久综合国产精品免费| 亚洲一区二区三区不卡在线播放| 亚洲免费人成视频观看| 亚洲乱码无限2021芒果 | 香蕉免费一级视频在线观看| 亚洲精品无码久久毛片 | 99视频免费观看| 亚洲成a人片在线观看中文!!!| 三年片在线观看免费大全 | 亚洲视频网站在线观看| 曰批全过程免费视频网址| 亚洲一线产品二线产品| 免费精品国产自产拍观看| 国产免费AV片在线观看播放| 亚洲免费视频网站| 在线免费视频一区二区| www.xxxx.com日本免费| 亚洲ⅴ国产v天堂a无码二区| a级毛片无码免费真人| 香蕉97碰碰视频免费| 亚洲成AV人片在线播放无码| 91香蕉成人免费网站| 精品国产日韩亚洲一区91| 亚洲伊人久久大香线蕉综合图片| 中文字幕在线观看免费视频| 亚洲精品乱码久久久久久蜜桃图片| 亚洲成a人片在线观看国产| 一区二区在线免费观看| 99亚洲乱人伦aⅴ精品| 亚洲成a人片在线观看无码 | 国产AV旡码专区亚洲AV苍井空| 亚洲AV无码乱码在线观看| 未满十八18禁止免费无码网站|