Win a copy of Functional Reactive Programming this week in the Other Languages forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Struts 1.3.10 encoding problem

 
saikat mukherjee '
Greenhorn
Posts: 2
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi ,
i am currently working on a struts application that needs to submit unicode charaters.

the unicode labels are displayed on the forms properly but whenever the user submits the form by typing unicode characters the values get garbled up.

I have tried the following options but to no help:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> (in jsp)
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> (in jsp)


I have also tried to set the character encoding explicitly to utf-8 in the request and response objects using a flter.
And in tomcat i have also set the encoding to utf-8

One interesting thing that I found was that if i create a normal jsp page without using any struts tag and point to the same struts action the unicode characters are getting submitted properly.

I am assuming if this is any issue with the usage of the struts tag although i have specified the acceptCharset property in the html:form

Saikat
 
saikat mukherjee '
Greenhorn
Posts: 2
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Al last I found the solution by writing a filter



in web.xml
<filter>
<filter-name>CharacterEncodingFilter</filter-name>
<filter-class>bt.gov.g2c.framework.common.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>requestEncoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>


<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>



The filter itself looks like:


public class CharacterEncodingFilter implements Filter {
private FilterConfig fc;

public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) res;

request.setCharacterEncoding("UTF8");
response.setCharacterEncoding("UTF8");

chain.doFilter(request, response);

request.setCharacterEncoding("UTF8");
response.setCharacterEncoding("UTF8");

}
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic