HTML中使用EasyUI时遇到的路径问题

  • 趁着假期,准备把以前写的渣渣的代码重写一下,用struts2+Mybatis,编写前端页面的时候用到了JQuery+EasyUi,静态页面写完之后把它部署到tomcat上边准备做一下测试,结果遇到了bug,在浏览器debug的时候看到提示一直说是路径错误,找不到HTML中导入的EasyUi和JQuery的js文件,,,之后尝试着修改路径,,相对路径、绝对路径都试了还是不行,烦躁到爆炸,debug不了,过了一会儿又回头来看,确定自己的路径是没有错误的。就往其它方面考虑,终于发现了问题所在。。。。。。。。。。。
  • 确定自己的路径没有错误之后,就想为什么会找不到路径下的文件,,猛然间想到struts2的过滤器。。。问题就在这了,过滤器里初始设置的是拦截所有请求,,,这样的话,导入的js和css文件都会被拦截而找不到。。
  • 接着自定义了一个拦截器,完美的解决问题。以下是代码;
    web.xml中的核心控制器的配置,将默认的控制器实现类,更换为了自己自定义的类。
 <!-- 配置struts2的核心控制器 -->
    <filter>
        <!-- 配置struts核心控制器的名字 -->
        <filter-name>struts2</filter-name>
        <!-- 配置核心控制器的实现类 -->
        <!-- org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter-->
        <filter-class>
            com.xing.filter.MyFilter
        </filter-class>
    </filter>
    <filter-mapping>
        <!-- 过滤器拦截名称 -->
        <filter-name>struts2</filter-name>
        <!-- 配置Struts2的核心过滤器拦截所有用户的请求 -->
        <url-pattern>/*</url-pattern>
    </filter-mapping>

自定义的拦截器的类:

package com.xing.filter;

import org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter;

import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;

/**
 * Created by xpengfei on 2017/10/1.
 * 自定义的Filter,对导入的easyui的js和css文件设置为不过滤
 */
public class MyFilter  extends StrutsPrepareAndExecuteFilter{

    @Override
    public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
        HttpServletRequest request= (HttpServletRequest) req;
        String uri=request.getRequestURI();
        //不过滤的url
        if(uri.indexOf("/static")!=-1){
            System.out.println("使用自定义的拦截器");
            chain.doFilter(req,res);
        }else{
            System.out.println("使用默认的拦截器");
            super.doFilter(req,res,chain);
        }

    }
}

String uri=request.getRequestURI();//获取发给服务器的地址

uri.indexOf("/static")!=-1 表示如果发给服务器的地址中包含"/static"则使用自定义的拦截器,对此请求地址不拦截,否则的话使用默认的拦截器.

因为我将所有的js和css文件都放在了static目录下,所以监测发给服务器的地址中是否包含"/static"即可.

血淋淋的教训,谨以此文铭记!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值