`
a258131561
  • 浏览: 15017 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

SSH+sitemesh

阅读更多
昨天想把自己学习的项目加个sitemesh,没用过,网上找了些资料,照着做了一个,碰到了些问题,写下来做备忘
第一个问题
缺少部分jar包,除了struts2-sitemesh2.1.6、sitemesh2.3,还需要其它的jar,去官方网站下了个完整的sitemesh2.3,将里面的包全部导入,结果就出现了个异常,找来找去,发现是crimson.jar惹的祸,删除jar就OK
另外一个问题是提示struts2-sitemesh的过滤器找不到,明明就在那里的jar,非说找不到,很费解,不管那么多,肯定是和哪个包冲突了,将spring多余的包删除后ok,也不知道是哪个包的问题

终于运行成功啦,结果发现html是乱码,还有项目中的一个jsTree出不来,当场崩溃
html的乱码网上一堆说法,试了半天,只有重写过滤器才是最有效的终极解决办法
代码如下:
package com.cool.filter;


import java.io.IOException;

import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.util.ClassUtils;
import org.springframework.web.filter.OncePerRequestFilter;

// Referenced classes of package org.springframework.web.filter:
//            OncePerRequestFilter

public class MyCharacterEncodingFilter extends OncePerRequestFilter
{

    private static final boolean responseSetCharacterEncodingAvailable;
    private String requestEncoding;
    private String responseEncoding;
   
    private boolean forceEncoding;

    public void setResponseEncoding(String responseEncoding) {
this.responseEncoding = responseEncoding;
}

public MyCharacterEncodingFilter()
    {
        forceEncoding = false;
    }



    public void setRequestEncoding(String requestEncoding) {
this.requestEncoding = requestEncoding;
}

public void setForceEncoding(boolean forceEncoding)
    {
        this.forceEncoding = forceEncoding;
    }

    protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain)
        throws ServletException, IOException
    {
        if(requestEncoding != null && (forceEncoding || request.getCharacterEncoding() == null))
        {
            request.setCharacterEncoding(requestEncoding);
            if(responseEncoding!=null&&!responseEncoding.equals(""))
            {
                response.setCharacterEncoding(responseEncoding);
              
            }
        }
        filterChain.doFilter(request, response);
    }



    static
    {
        responseSetCharacterEncodingAvailable = ClassUtils.hasMethod(javax.servlet.http.HttpServletResponse.class, "setCharacterEncoding", new Class[] {
            java.lang.String.class
        });
    }
}

web配置文件如下:
<!-- 乱码配置 -->
<filter>
        <filter-name>encodingFilter </filter-name>
        <filter-class>com.cool.filter.MyCharacterEncodingFilter </filter-class>
        <init-param>
            <param-name>requestEncoding </param-name>
            <param-value>UTF-8</param-value>
        </init-param>
        <init-param>
            <param-name>responseEncoding </param-name>
            <param-value>UTF-8</param-value>
        </init-param>
    </filter>

    <filter-mapping>
        <filter-name>encodingFilter </filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
1
0
分享到:
评论

相关推荐

    ssh2(事务,AOP,IoC即DI)+EhCache+oscache+proxool+MySQL+SiteMesh+Gzip例子

    jQuery+json+struts2+spring3(事务,AOP,IoC即DI)+hibernte3+EhCache+oscache+proxool+MySQL+SiteMesh+Gzip lj例子

    Struts2+Spring+Hibernet+JPA+sitemesh+log4j

    它们各自承担着不同的职责,并且在实际项目中经常被整合使用,形成了所谓的"SSH2"(Struts2 + Spring + Hibernate)框架组合,加上JPA和SiteMesh,进一步提升了开发效率和应用的可维护性。 1. **Struts2**:这是一...

    网上拍卖(基于SSH架构,采用SiteMesh框架排版,Ajax)

    总结来说,这个网上拍卖系统利用了SSH架构的强大功能,通过SiteMesh优化了页面布局,使用Ajax技术提供了流畅的用户交互。对于学习和理解Java Web开发,特别是SSH框架和前端动态更新技术,这是一个很好的实践案例。

    sitemesh+ spring2 + struts2 + hibernate 的 demo

    这个"SSH2"项目是一个基于Sitemesh的Demo,展示了如何将这四个组件无缝集成。 **Sitemesh**: Sitemesh是一个页面布局和装饰框架,用于Web应用程序。它可以帮助开发者统一网站的外观和感觉,通过定义模板来实现全局...

    ssh2开发框架源码

    SSH2开发框架是Java Web开发中的一个经典组合,由Struts2、Spring和Hibernate三个主要组件构成,再加上Sitemesh和JUnit,形成了一个强大的、全面的后端开发环境。下面将详细阐述这些技术及其在项目中的作用。 1. **...

    sitemesh-2.4.jar

    用于在SSH2工程中使用sitemesh-2.4.jar 包;

    基于ssh的电子拍卖系统

    在基于SSH的电子拍卖系统中,Sitemesh可以用来定义全局的页眉、页脚、侧边栏等,使每个页面都保持一致的样式,提升用户体验。 结合以上四个关键组件,"auction_Eclipse"可能是一个Eclipse工程,包含了整个电子拍卖...

    SSH的jar包.rar

    2、这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做ActionContextCleanUp的可选过滤器,这个过滤器对于Struts2和其他框架的集成很有帮助,例如:SiteMesh Plugin) 3、接着FilterDispatcher被调用,...

    ssh框架学习指南介绍ssh的框架结构

    ### SSH框架学习指南知识点详解 #### 一、SSH框架简介 SSH框架,即Struts2 + Spring + Hibernate的组合,是一种流行的Java Web开发框架。它将MVC模式、依赖注入和对象关系映射等技术结合在一起,使得开发更加高效、...

    java SSH 框架学习

    ### Java SSH框架学习知识点 #### 一、SSH框架概述 SSH框架是指由Spring、Struts2和Hibernate三个开源框架组成的轻量级Java EE应用程序开发框架。这三个框架在Java Web开发中各自扮演着重要的角色,相互协作可以...

    SSH核心笔记

    根据给定的信息,本文将对SSH框架的核心知识点进行详尽阐述。SSH框架即Struts + Spring + Hibernate,是Java Web开发领域中一个非常流行的轻量级应用框架组合。本篇内容将围绕Struts、Spring、Hibernate这三个核心...

    SSH英语学习网站

    本项目以SSH框架为核心,结合文件上传下载功能,以及Ajax和Sitemesh等技术,提供了丰富的实践经验和学习资源。 1. **Struts**:Struts是MVC(Model-View-Controller)设计模式的一种实现,主要用于处理用户界面和...

    SSH 中jar包说明

    ### SSH中的Jar包详解 SSH(Struts+Spring+Hibernate)是Java Web开发中非常流行的轻量级框架组合。为了更好地理解和使用SSH框架,我们有必要深入解析这些框架中所涉及的关键Jar包及其功能。 #### 1. **antlr-2.76...

    Java基础和J2ee的SSH2

    Sitemesh则是一种页面布局工具,它可以帮助开发者创建一致的页面外观和复合视图。 Lucene是全文搜索引擎库,常用于实现网站的搜索功能。JUnit是Java单元测试的框架,确保代码的质量和可维护性。JDBC是Java连接...

    e拍网上购物系统(SSHA)

    "e拍网上购物系统(SSH框架)"是一个基于SSH(Spring、Struts和Hibernate)架构开发的电子商务平台。SSH是Java Web开发中的一个经典组合,它整合了Spring的依赖注入和事务管理,Struts的MVC设计模式,以及Hibernate...

    开发者突击·Java Web主流框架整合开发(J2EE+Struts+Hibernate+Spring)源码

    在《开发者突击:Java Web主流框架整合开发(J2EE+Struts+Hibernate+Spring)》架构讲解的过程中,穿插介绍了JDBC、Log4j、Sitemesh、JUnit技术。 随书附赠光盘内容包括《开发者突击:Java Web主流框架整合开发(J2EE+...

    ssh 2 基于注解开发

    基于注解开发的 java web, 使用框架 spring 2.5 , hibernate 3.3 , struts 2.1 , sitemesh 2.4 (spring 和 hibernate 使用注解,struts 使用配置) 使用 eclipse 3.5 部署! 所需要 jar 包查看 WebContent\META-INF\...

    开发者突击:Java Web主流框架整合开发(第2版)Part1

    在本书架构讲解的过程中,分别使用并讲解了JDBC、Log4j、Sitemesh、JUnit技术。 一本java web学习的好教材,影印版,清晰度保质保量,共809页,压缩成7個文件,爲了区分别的压缩文件,我在文件名后面增加(hyit2004),...

    二手交易平台设计与开发.doc

    * 系统技术:二手交易平台的系统技术包括J2EE开发技术、SSH2框架、Junit4单元测试、Ant自动化、Sitemesh界面设计等。 三、商品信息及管理模块设计 * 商品信息模块:包括商品信息的添加、修改、删除、查询等基本...

Global site tag (gtag.js) - Google Analytics