首页 > 编程语言 > 详细

Spring入门配置(三) - MVC

时间:2019-07-14 00:32:49      阅读:131      评论:0      收藏:0      [点我收藏+]

一、开发中的主要配置

  1. 导入相关jar包坐标

    spring-context、spring-webmvc、spring-jdbc、spring-tx、servlet-api、jsp-api、jstl、jackson-core、jackson-databind、jackson-annotations等,视需求而定

  2. web.xml文件中配置SpringMVC相关

    1. ContextLoaderListener 监听器,详情请看:Spring入门配置(一) - IOC中第六部分
      <!--全局参数-->
      <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:applicationContext.xml</param-value>
      </context-param>
      <!--Spring的监听器-->
      <listener>
          <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
      </listener>
    2. CharacterEncodingFilter 过滤器,主要用于解决post请求时的乱码问题
      <filter>
          <filter-name>CharacterEncodingFilter</filter-name>
          <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
          <init-param>
              <param-name>encoding</param-name>
              <param-value>UTF-8</param-value>
          </init-param>
      </filter>
          <filter-name>CharacterEncodingFilter</filter-name>
          <url-pattern>/*</url-pattern>
      </filter-mapping>
    3. DispatcherServlet 核心控制器
      <servlet>
          <servlet-name>DispatcherServlet</servlet-name>
          <servlet-class>org.springframework.web.servlet.DispatcherServlet
          </servlet-class>
         <!--需要加载配置文件的对象,配置时需要考虑文件名抽取的问题,便于解耦和维护等,故配置此变量-->
      <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring-mvc.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>DispatcherServlet</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>
  3. 配置spring-mvc.xml

    1. 配置SpringMVC命名空间
      命名空间:
      xmlns:mvc="http://www.springframework.org/schema/mvc"
      约束路径:
      http://www.springframework.org/schema/mvc
      http://www.springframework.org/schema/mvc/spring-mvc.xsd
    2. 配置MVC注解驱动
      <!--mvc的注解驱动-->
      <mvc:annotation-driven/> 
    3. 配置组件扫描
      <context:component-scan back-package="包全限定名(controller层)"/>
    4. 访问静态资源
      <mvc:default-servlet-handler/>
    5. 配置文件配置视图解析器

      视图解析器的默认设置

      REDIRECT_URL_PREFIX = "redirect:"  --重定向前缀
      FORWARD_URL_PREFIX = "forward:"    --转发前缀(默认值)
      prefix = "";     --视图名称前缀
      suffix = "";     --视图名称后缀

      实际配置,以下代码仅配置访问jsp页面时的返回数据

      <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
          <property name="prefix" value="/WEB-INF/views/"></property>
          <property name="suffix" value=".jsp"></property>
      </bean>
    6. 拦截器配置
      <mvc:interceptors><!--该标签内配置多个拦截器-->
          <mvc:interceptor>
              <!--对哪些路径进行拦截,本例中拦截所有-->
              <mvc:mapping path="/**"/>
              <mvc:exclude-mapping path=""/>
              <bean class="MyInterceptor全类名"/>
          </mvc:interceptor>
      </mvc:interceptor>
    7. 异常配置
      <bean class="SimpleMappingExceptionResolver全类名">
          <property name="defaultErroeView" value="error"/><!--默认错误视图-->
              <property name="exceptionMappings">
                  <map>
                      <entry key="MyException全类名" value="error"/> 
                      <entry key="其他异常全类名" value="error"/>
                  </map>
              </property>
      </bean>
    8. 其他需要注入的bean等配置
  4. 常见所需注解

    1. @RequestMapping("/访问地址")
      • 作用:用于建立请求 URL 和处理请求方法之间的对应关系
      • 位置:
        • 类上,请求URL 的第一级访问目录。此处不写的话,就相当于应用的根目录
        • 方法上,请求URL的第二级访问目录,与类上的使用@ReqquestMapping标注的一级目录一起组成访问虚拟路径
      • 属性:
        • value:用于指定请求的URL。它和path属性的作用是一样的
        • method:用于指定请求的方式
        • params:用于指定限制请求参数的条件。它支持简单的表达式。要求请求参数的key和value必须和配置的一模一样
      • 举例:
        • params = {"accountName"},表示请求参数必须有accountName
        • params = {"moeny!100"},表示请求参数中money不能是100
    2. @ResponseBody

      告知SpringMVC框架,方法返回的字符串不是跳转是直接在http响应体中返回。

    3. @RequestBody

      当使用ajax提交时,可以指定contentType为json形式,那么在方法参数位置使用@RequestBody可以直接接收集合数据而无需使用POJO进行包装。

      public void quickMethod13(@RequestBody List<User> userList) 
    4. @RequestParam

      当请求的参数名称与Controller的业务方法参数名称不一致时,就需要通过@RequestParam注解显示的绑定。有以下参数可以使用:

      • value:与请求参数名称
      • required:此在指定的请求参数是否必须包括,默认是true,提交时如果没有此参数则报错
      • defaultValue:当没有指定请求参数时,则使用指定的默认值赋值
      <!--form表单代码-->
      <form action="${pageContext.request.contextPath}/quick14" method="post">
          <input type="text" name="name"><br>
          <input type="submit" value="提交"><br>
      </form>
      //获取请求数据时的注解配置
      public
      void quickMethod14(@RequestParam("name") String username)
    5. @PathVariable(value="name" method=...) 获取Restful风格参数时的配置
    6. @RequestHeader
    7. @CookieValue

Spring入门配置(三) - MVC

原文:https://www.cnblogs.com/dwyer/p/11182738.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!