All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.sf.wcfart.wcf.charset.package.html Maven / Gradle / Ivy



Forces the request encoding to UTF-8 or another configurable character encoding.

Problem: in servlet 2.3, when {@link javax.servlet.ServletResponse#setLocale(java.util.Locale)} is called, the character encoding is changed implicit in an unspecified way. To prevent this, this wrapper does not forward the setLocale call. All JSTL fmt:xxx actions call setLocale on the response, which causes the problem.

This package uses a response wrapper that does not allow the character encoding to be changed. Also the filter sets the Request encoding to UTF-8 (or another configurable charset) because most browsers dont follow the http spec and do not send a content-type header when submitting a form. They use the character encoding of the page that contained the form.

The encoding is configurable as filter init parameter encoding, via the property tbeller.charset. If the filter is installed, it defaults to UTF-8, otherwise it defaults to ISO-8859-1.

The filter automatically changes (or adds) the response encoding of one configurable content-type. If the filter init-param contentType is set to text/html, then a response content type will of "text/html; charset=iso-8859-1" will be changed into "text/html; charset=utf-8".

The ContentTypeTag sets the content-type and character encoding of the response to the given type.

Filter example:

  <filter>
    <filter-name>CharsetFilter</filter-name>
    <filter-class>net.sf.wcfart.wcf.charset.CharsetFilter</filter-class>
    <init-param>
      <param-name>encoding</param-name>
      <param-value>ISO-8859-2</param-value>
      <description>character encoding that this filter will enforce</description>
    </init-param>
    <init-param>
      <param-name>contentType</param-name>
      <param-value>text/html</param-value>
      <description>this content type will be set to the above encoding automatically, e.g. "text/html; charset=iso-8859-1" will become "text/html; charset=utf-8"</description>
    </init-param>
  </filter>
see JSTL spec, section 8.4 and fmt:requestEncoding @see javax.servlet.ServletResponse#setLocale(java.util.Locale) @see net.sf.wcfart.tbutils.res




© 2015 - 2025 Weber Informatics LLC | Privacy Policy