今天帮朋友解决了一个sitemesh很奇怪的字符编码问题。
开发环境是NetBeans 4.1 + Tomcat。之前在此环境下开发的Web项目很正常,最近朋友决定使用sitemesh来管理页面,结果问题出来了:CSS、HTML、JSP等文件均没问题,但就是不能显示图像。并且每刷新一下页面,Tomcat就会报错:
严重: Javac exception
Compile failed; see the compiler error output for details.
...
at com.mike.Filter.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:51)
...
...vcss_bmp.java:45: 非法的表达式开始
...vcss_bmp.java:45: 非法字符: /15
...
看来问题出在字符编码上,检查页面编码,全设为gb2312,应该没问题,再检查web.xml,共有两处设置编码的地方。
第一个:
<filter>
<filter-name>setCharacterEncoding</filter-name>
<filter-class>com.mike.Filter.SetCharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>gb2312</param-value>
</init-param>
</filter>
...
<filter-mapping>
<filter-name>setCharacterEncoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
另外一个地方是:
<jsp-property-group>
<display-name>JSP Property Group</display-name>
<url-pattern>/*</url-pattern>
<page-encoding>gb2312</page-encoding>
</jsp-property-group>
</jsp-config>
根据错误提示,先把第一个地方屏蔽掉,错误依旧。恢复第一个后,把第二个地方屏蔽掉,问题解决。想必是sitemesh里面所应用的chains of responsibility导致,但具体细节还不清楚。
所幸第一个方法没问题,表单中文处理正常。
分享到:
相关推荐
sitemesh 装饰 母版
web布局框架 SiteMesh教程及SiteMesh官方文档翻译
siteMesh demo siteMesh使用文档
sitemesh.jar包 sitemesh.jar 包sitemesh.jar 包sitemesh.jar包
NULL 博文链接:https://javawxl.iteye.com/blog/2323096
SiteMesh是一个网页布局和装饰框架以及Web应用程序集成框架,可帮助创建由页面组成的网站,这些页面需要一致的外观,导航和布局方案。 SiteMesh会拦截对通过Web服务器请求的任何静态或动态生成的HTML页面的请求,...
sitemesh 装饰页面技术.
sitemesh-2.2.1.jar
很简单的sitemesh入门教程,希望对大家有所帮助
MiddleGen-Hibernate: 本书使用版本:2.1 ... modtime=1096973436&big_mirror=0 下载文件:middlegen-2.1.zip MiddleGenIDE插件: 本书使用版本:1.2.0 ...(7)Sitemesh: ...下载文件:sitemesh-2.3.zip
springMVC与sitemesh的结合,
sitemesh jar包sitemesh jar包sitemesh jar包sitemesh jar包sitemesh jar包sitemesh jar包sitemesh jar包
sitemesh-2.4.1.jar sitemesh-2.4.1.jar sitemesh-2.4.1.jar sitemesh-2.4.1.jar sitemesh-2.4.1.jar sitemesh-2.4.1.jar
SiteMesh教程.pdf
Struts 2.0提供一个Sitemesh插件,允许在Sitemesh模板中使用Struts标记。 要使用Sitemesh需要包含Freemark,Sitemesh和Sitemesh插件库文件。 配置过滤器 如果需要使用Freemark模板文件作为装饰器文件,需要在web....
sitemesh入门demo。博客 Sitemesh入门和使用笔记 对应源码
SiteMesh 是一个网页布局和修饰的框架,利用它可以将网页的内容和页面结构分离,以达到页面结构共享的目的。Sitemesh是由一个基于Web页面布局、装饰以及与现存Web应用整合的框架。它能帮助我们在由大 量页面构成的...
用sitemesh页面装饰器,将大名鼎鼎的开源即时通讯服务器openfire中运用的,布局页面抽取出来。MyEclipse中可以直接部署的代码。
spring-boot-sitemesh 源码整合
初学sitemesh做了个简单的例子,希望对初学的人有用吧