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";
    }
    }


  • 相关阅读:
    波段是金牢记六大诀窍
    zk kafka mariadb scala flink integration
    Oracle 体系结构详解
    图解 Database Buffer Cache 内部原理(二)
    SQL Server 字符集介绍及修改方法演示
    SQL Server 2012 备份与还原详解
    SQL Server 2012 查询数据库中所有表的名称和行数
    SQL Server 2012 查询数据库中表格主键信息
    SQL Server 2012 查询数据库中所有表的索引信息
    图解 Database Buffer Cache 内部原理(一)
  • 原文地址:https://www.cnblogs.com/hualishu/p/7398860.html
Copyright © 2011-2022 走看看