我面臨這個問題。我有一個篩選器根據篩選器的配置(例如,UTF-8)設置請求的字符編碼。這適用於使用struts html:form標籤編碼的表單。但是,如果我使用普通的HTML表單標記,則數據編碼不正確。編碼過濾器,使用html時的struts工作:表格標籤
這是過濾器定義在web.xml:
<filter>
<filter-name>Encoding Filter</filter-name>
<filter-class>EncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Encoding Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
這裏的過濾器:
public class EncodingFilter implements javax.servlet.Filter {
private String encoding;
public void init(FilterConfig filterConfig) throws ServletException {
this.encoding = filterConfig.getInitParameter("encoding");
}
public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws IOException, ServletException {
request.setCharacterEncoding(encoding);
filterChain.doFilter(request, response);
}
public void destroy() {
}
}
是您的網頁內容類型的字符集設置爲UTF-8?你使用POST還是GET?你看過頁面源代碼來看看struts-tag生成的表單和標準的HTML表單之間的區別嗎? –
問題通過指定method ='post'來解決,html:form被轉換成表單witch方法是post – fatiDev