zoukankan      html  css  js  c++  java
  • Spring入门-MVC使用注解

    前面学习了使用配置文件来完成一个SpringMVC,但是随着控制器写的越来越多,会显得代码很臃肿,使用注解能避免这种情况,让代码显得更加简洁。

    编程步骤

    前期准备就是pom.xml导包Spring-webmvc部署描述文件web.xml配置DispatcherServlet,resources目录下添加Spring启动所需的xml配置文件,这个跟上篇没什么区别,编程注意点如下:

     1 Model类不再实现Controller接口

     2 Model类不实现Controller接口,方法名就不做要求了,不一定是以前的handlerRequest。返回类型除了可以是ModleAndView,也可以是String类型

     3 Model类中可以添加多个方法

     4 Model类使用@Controller注解,不需要在配置文件中配置bean元素

     5 可以在方法前或者类前添加@RequestMapping,相当于handlerMapping的作用

     6 在配置文件中,添加ViewResolver配置、组件扫描、添加MVC注解扫描(识别@RequestMapping)

    实现注解使用SpringMVC

    导包

    1   <dependency>
    2   <groupId>org.springframework</groupId>
    3   <artifactId>spring-webmvc</artifactId>
    4   <version>4.2.3.RELEASE</version>
    5   </dependency>

    web.xml配置DispatcherServlet

     1 <!-- 配置DispatcherServlet 使用注解完成springMVC -->
     2   <servlet>
     3     <servlet-name>myspringmvc</servlet-name>
     4     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
     5     <init-param>
     6         <param-name>contextConfigLocation</param-name>
     7         <param-value>classpath:my-spring-mvc.xml</param-value>
     8     </init-param>
     9     <!-- 设置tomcat启动就开启Spring -->
    10     <load-on-startup>1</load-on-startup>
    11   </servlet>
    12   <servlet-mapping>
    13     <servlet-name>myspringmvc</servlet-name>
    14     <url-pattern>*.get</url-pattern>
    15   </servlet-mapping>

    配置spring启动读取的xml文件

    里面需配置组件扫描,将扫描包下的类纳入Spring容器来管理,还需配置注解驱动,最后还需要配置视图解析器。

     1 <!-- 配置组件扫描 -->
     2    <context:component-scan base-package="com.boe"></context:component-scan>    
     3    <!-- 配置MVC注解扫描 -->
     4    <mvc:annotation-driven></mvc:annotation-driven>
     5    <!-- 配置视图解析器 -->
     6     <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
     7            <property name="prefix" value="/WEB-INF/" />
     8            <property name="suffix" value=".jsp" />
     9            <!-- 前缀和后缀配置,视图名hello通过上面的配置可以映射到/WEB-INF/hello.jsp -->
    10     </bean> 

    写一个Model

    Model里使用@Controller注解,代表它是一个Controller,另外还需要让请求转发到对应的Controller,这里直接在方法里添加@RequestMapping注解来完成。

     1 package com.boe;
     2 
     3 import org.springframework.stereotype.Controller;
     4 import org.springframework.web.bind.annotation.RequestMapping;
     5 import org.springframework.web.servlet.ModelAndView;
     6 
     7 /**
     8  * 测试使用注解完成一个helloSpringMVC
     9  * @author yangchaolin
    10  */
    11 @Controller
    12 @RequestMapping("/demo")
    13 public class helloController {
    14     //方法1
    15     @RequestMapping("/hello.get")
    16     public String hello() {
    17         System.out.println("返回一个String");
    18         return "hello";
    19     }
    20     //方法2
    21     @RequestMapping("/helloModelAndView.get")
    22     public ModelAndView helloModelAndView() {
    23         System.out.println("返回ModelAndView");
    24         return new ModelAndView("hello");
    25     }
    26 }

    写JSP

    略,参考博文的jsp内容。

    测试结果

    项目上右击选择启动项目on server,然后访问Model里写的请求路径,注意类前面也加了一个@RequestMapping,这样路径名将在完整项目名后还有一个/demo,不加的话就直接项目名后/hello.get访问。

    控制台情况,可以看出Model里方法可以返回String和ModelAndView。

    以上就是使用注解完成SpringMVC的过程,其相比不使用注解将减少Model代码,减少spring-mvc中对HandlerMapping的配置,减少对Model对应bean的配置。

    参考博文

    (1)https://www.cnblogs.com/youngchaolin/p/11347771.html

  • 相关阅读:
    【转载】 C#中使用Sum方法对List集合进行求和操作
    【转载】 C#中使用Count方法获取List集合中符合条件的个数
    【转载】C#使用FirstOrDefault方法快速查找List集合中符合条件的第一个实体
    【转载】Windows检测到IP地址冲突
    【转载】Asp.Net MVC网站提交富文本HTML标签内容抛出异常
    java笔试题(4)
    Android -- TouchEvent的分发和截获方式
    SQL优化
    Android -- 经验分享(二)
    设计模式(十二)外观模式(结构型)
  • 原文地址:https://www.cnblogs.com/youngchaolin/p/11349493.html
Copyright © 2011-2022 走看看