zoukankan      html  css  js  c++  java
  • Spring MVC 解决无法访问静态文件和"全局异常处理"

    我们都知道,Spring MVC的请求都会去找controller控制器,若果我们页面中引入了一个外部样式,这样是没效果的,

    我们引入样式的时候是通过<like href="..."></like>

    这也算请求,若果我们href中的URL是http://localhost:8080/Text/statics/css/main.css

    他不会去找样式表,而是去拆解URL,在根据HandlerMapping去找对应的Handler,但是,这个地址是没有预支对应的Handler,也就会报错!

    我们可以这样解决,很简单 在Xxx-servlet.xml配置文件中加入如下代码:

    <mvc:resources location="/statics/" mapping="/statics/**" />
    

    mapping中的"**"的意思是,去statics文件夹下迭代查找文件

    这样就解决了问题!

    全局异常处理:

    第一步:创建一个自己的异常类,继承至运行时异常(RuntimeException)

    package cn.happy.entity;
    
    public class UserException extends RuntimeException {
    
    	public UserException() {
    		super();
    	}
            //简单的异常类,用到的是这个构造
    	public UserException(String message){
    		super(message);
    	}
    }
    

    第二步:在Spring MVC核心配置文件中配置如下代码:

    <bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
    		<property name="exceptionMappings">
    			<props>
    				<prop key="cn.happy.entity.UserException">error</prop>
    			</props>
    		</property>
    	</bean>
    

    prop节点的key就是异常类,error就是异常页面也就是Value(可配置多个)

    第三步:在一个Handler中手动抛出一个异常并且不做处理:

    package cn.happy.controller;
    
    import org.springframework.stereotype.Controller;
    import org.springframework.ui.Model;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestParam;
    
    import cn.happy.entity.Student;
    import cn.happy.entity.UserException;
    
    @Controller
    public class HelloController {
    	
    	@RequestMapping(value="/hello")
    	public String hello(Student stu,Model model){
    		throw new UserException("Sorry, the server was wrong.");
    	}
    }
    

    第四步:创建error异常页面:

    第五步:访问该地址:(http://localhost:8080/项目名/hello)

    异常成功处理到自己的异常页面!

  • 相关阅读:
    基于【 Docker】四 || Docker常用镜像安装
    【静态延迟加载】self关键字和static关键字的区别
    【php设计模式】单例模式
    为什么要使用 SPL中的 SplQueue实现队列
    php中连接tcp服务的三种方式
    使用rsync工具构建php项目管理平台
    php 求两个数组的差集应该注意的事情
    lnmp环境快速搭建及原理解析
    nginx + lua 限制ip地址访问
    mysql主从复制搭建
  • 原文地址:https://www.cnblogs.com/xjdoconline/p/5355266.html
Copyright © 2011-2022 走看看