struts-<?xml:namespace prefix = st1 />
二、???????????配置項目的web.xml??????
Struts2.0所有的配置被整合在一個Filter里面,該Filter位于org.apache.struts2.dispatcher.FilterDispatcher,因此,在web.xml中應該這樣聲明:
<filter>
???????<filter-name>struts</filter-name>
???????<filter-class>
???????????org.apache.struts2.dispatcher.FilterDispatcher
???????</filter-class>
????</filter>
????
????<filter-mapping>
???????<filter-name>struts</filter-name>
???????<url-pattern>/*</url-pattern>
</filter-mapping>
但是,該Filter一個問題,就是從頁面傳到后臺的中文經過這個過濾器后會變成亂碼,為了解決這個問題,需要重寫這個過濾器,最簡單的方法是寫一個類繼承FilterDispatcher,在src目錄下創建com.filter包,在包中建立NewFilterDispatcher類,繼承FilterDispatcher,代碼如下:
packagecom.filter;
importjava.io.IOException;
importjavax.servlet.FilterChain;
importjavax.servlet.FilterConfig;
importjavax.servlet.ServletException;
importjavax.servlet.ServletRequest;
importjavax.servlet.ServletResponse;
importorg.apache.struts2.dispatcher.FilterDispatcher;
publicclassNewFilterDispatcherextendsFilterDispatcher {
????privatestaticStringencoding="GB2312";
????????publicvoidinit(FilterConfig filterConfig)throwsServletException {
????????????super.init(filterConfig);
????????????String encodingParam = filterConfig.getInitParameter("encoding");
????????????if(encodingParam !=null&& encodingParam.trim().length() != 0) {
???????????????encoding= encodingParam;
????????????}
????????}
????????publicvoiddoFilter(ServletRequest request, ServletResponse response,
????????????????FilterChain chain)throwsIOException, ServletException {
????????????request.setCharacterEncoding(encoding);
????????????super.doFilter(request, response, chain);
????????}
????
}(待續)