zoukankan      html  css  js  c++  java
  • 补充Springmvc注解式开发

    在xml上配置包扫描器:

    让他扫描基本包才能实现并运用到了注解

    <context:component-scan base-package="Controller02"></context:component-scan>

    上面是spring搭的框架

    package Controller02;

    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestMethod;

    /**
    * Created by Administrator on 2017/8/18.
    */
    @Controller
    //HappyController称为了一个控制器 处理请求
    /*命名空间*/
    @RequestMapping(value="/first",method ={ RequestMethod.POST,RequestMethod.GET})
    public class HappyController {

    @RequestMapping("/first")
    public String dofirst(){
    //逻辑视图名
    return "/WEB-INF/insert.jsp";
    }
    @RequestMapping("/second")
    public String doSeconed(){
    //逻辑视图名
    return "/WEB-INF/insert.jsp";
    }
    /*通配符*/
    @RequestMapping("/*third")/*以third结尾就行*/
    public String dothird(){
    //逻辑视图名
    return "/WEB-INF/insert.jsp";
    }
    /*任意级目录*/
    @RequestMapping("/**/fourth")
    public String dofourth(){
    //逻辑视图名
    return "/WEB-INF/insert.jsp";
    }
    @RequestMapping("/*/fiveth") /*必须有一级目录,有且只能有一级*/
    public String dofiveth(){
    //逻辑视图名
    return "/WEB-INF/insert.jsp";
    }
    }

    @RequestMapping在方法上加注解的作用?

    下面让我来回答一下

    @RequestMapping

    RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。

    RequestMapping注解有六个属性,下面我们把她分成三类进行说明。

    package Controller02;

    import java.util.List;

    /**
    * Created by Administrator on 2017/8/18.
    */
    public class UserInfo {
    private String uname;
    private Book book; //域属性
    public List<Book> books;

    public List<Book> getBooks() {
    return books;
    }

    public void setBooks(List<Book> books) {
    this.books = books;
    }

    public String getUname() {
    return uname;
    }
    public void setUname(String uname) {
    this.uname = uname;
    }
    public Book getBook() {
    return book;
    }
    public void setBook(Book book) {
    this.book = book;
    }
    }

     package Controller02;/* * Created by Happy on 2017-08-18.

     */
    public class Book {
    private String bookname;

    public String getBookname() {
    return bookname;
    }

    public void setBookname(String bookname) {
    this.bookname = bookname;
    }
    }

    封装个book类
    /*域属性*/
    @RequestMapping("/AreaArgument")1、 url映射,其定义了controller方法对应的url,进行处理器映射使用。//@RequestMapping实现对queryItems方法和url进行映射,一个方法对应一个url
    public String login4(UserInfo info){ 方法名字随便起
    System.out.println(info.getUname()+" "+info.getBook().getBookname());
    return "/WEB-INF/index.jsp";
    }
    <context:component-scan base-package="Controller02"></context:component-scan>
     

    在springmvc中其具有三个功能:

    1、 url映射,其定义了controller方法对应的url,进行处理器映射使用。

    使用方式:

    在controller的方法上定义@RequestMapping

    //@RequestMapping实现对queryItems方法和url进行映射,一个方法对应一个url

    //一般建议将url和方法写成一样

    @RequestMapping("/queryItems")

    public ModelAndView queryItems()throws Exception{

    }

    2、窄化请求映射

    即在controller类上定义方法映射路径的跟路径,方便对url进行分类管理,类似与strus.xml中包的命名空间。

    3、限制http请求方法

    二、

    package Controller02;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestParam;

    /**
    * Created by Administrator on 2017/8/18.
    */
    @Controller
    public class AragumentController {
    @RequestMapping("/login")
    /*零散参数自动装配*/
    /*只要他两保持一致*/
    public String doFirst(String uname){
    System.out.println(uname);
    return "/WEB-INF/index.jsp";
    }
    @RequestMapping("/login2")
    /*自动装配对象*/
    public String doFirst(UserInfo info){
    System.out.println(info.getUname());
    return "/WEB-INF/index.jsp";
    }


    @RequestMapping("/rightArgumentParam")
    public String login3(@RequestParam("uname") String uname2){
    System.out.println(uname2);
    return "/WEB-INF/index.jsp";
    }


    //集合属性的自动装配
    @RequestMapping("/ListArgument")
    public String login5(UserInfo info){
    System.out.println(info.getUname()+" "+info.getBooks().get(0).getBookname());
    return "/WEB-INF/index.jsp";
    }
    /*域属性*/
    @RequestMapping("/AreaArgument")
    public String login4(UserInfo info){
    System.out.println(info.getUname()+" "+info.getBook().getBookname());
    return "/WEB-INF/index.jsp";
    }
    }

    集合属性自动装配
    <%--自动装配--%>/ListArgument表示路径url 访问页面@Connertoller中的@RequestMapping方法
    <form action="${pageContext.request.contextPath}/ListArgument" method="post">
    用户名: <input name="uname"/>
    喜爱的图书1: <input name="books[0].bookname"/>
    喜爱的图书2: <input name="books[1].bookname"/>
    <input type="submit"/>
    </form>
    <%--校正参数
    <form action="${pageContext.request.contextPath}/rightArgumentParam" method="post">
    <input name="uname"/>
    <input type="submit"/>
    </form>--%>

    <%--零散参数  一个值
    <form action="${pageContext.request.contextPath}/login" method="post">
        <input name="uname"/>
    <input type="submit"/>
    </form>--%>
    package Controller02;

    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestMethod;

    /**
    * Created by Administrator on 2017/8/18.
    */
    @Controller
    //HappyController称为了一个控制器 处理请求
    /*命名空间*/
    @RequestMapping(value="/first",method ={ RequestMethod.POST,RequestMethod.GET})
    public class HappyController {

    @RequestMapping("/first")
    public String dofirst(){
    //逻辑视图名
    return "/WEB-INF/insert.jsp";
    }
    @RequestMapping("/second")
    public String doSeconed(){
    //逻辑视图名
    return "/WEB-INF/insert.jsp";
    }
    /*通配符*/
    @RequestMapping("/*third")/*以third结尾就行*/
    public String dothird(){
    //逻辑视图名
    return "/WEB-INF/insert.jsp";
    }
    /*任意级目录*/
    @RequestMapping("/**/fourth")
    public String dofourth(){
    //逻辑视图名
    return "/WEB-INF/insert.jsp";
    }
    @RequestMapping("/*/fiveth") /*必须有一级目录,有且只能有一级*/
    public String dofiveth(){
    //逻辑视图名
    return "/WEB-INF/insert.jsp";
    }
    }


  • 相关阅读:
    Django 的 CSRF 保护机制
    uni横向滑动
    uni模板
    下载excel文件,链接,通过按钮点击创建a标签实现
    vue去除input输入框空格适用于搜索查询框
    整理个人笔记Linux的一些常用命令
    简单概括一下JAVA中的ANT的配置
    谈谈JavaIO System对IO的三种支持
    JAVA使用类库对数组和各种Collection容器进行排序
    c语言自行设计矩形类构造函数
  • 原文地址:https://www.cnblogs.com/hualishu/p/7398860.html
Copyright © 2011-2022 走看看