Saturday, December 6, 2014

Support UTF-8 in Struts2 using filter

This charset filter can apply for many Java web like JSF, Struts, Struts2, JSP ...

Source linkhttps://app.box.com/s/s8ldu549lt3jt1ppvxs7
  • Create a charset filter
  • Add filter to web.xml
  • Enable encoding UTF-8 in view

1. Create a filter to support UTF-8:

 package com.vmtram.struts2.filters;  
 import java.io.IOException;  
 import javax.servlet.Filter;  
 import javax.servlet.FilterChain;  
 import javax.servlet.FilterConfig;  
 import javax.servlet.ServletException;  
 import javax.servlet.ServletRequest;  
 import javax.servlet.ServletResponse;  
 public class CharsetFilter implements Filter {  
      @Override  
      public void destroy() {  
      }  
      @Override  
      public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException,  
                ServletException {  
           req.setCharacterEncoding("UTF-8");  
           res.setContentType("text/html; charset=UTF-8");  
           chain.doFilter(req, res);  
      }  
      @Override  
      public void init(FilterConfig arg0) throws ServletException {  
      }  
 }

2. Add filter to web.xml

      <filter>  
           <filter-name>charsetFilter</filter-name>  
           <filter-class>com.vmtram.struts2.filters.CharsetFilter</filter-class>  
      </filter>  
      <filter-mapping>  
           <filter-name>charsetFilter</filter-name>  
           <url-pattern>/*</url-pattern>  
      </filter-mapping>  

3. Enable encoding UTF-8 in view. 

Such as in JSP file.
 <%@ page language="java" contentType="text/html; charset=UTF-8"  
      pageEncoding="ISO-8859-1"%>  


The results:










Related:



No comments:

Post a Comment