zoukankan      html  css  js  c++  java
  • SpringMVC04 很杂很重要(注解,乱码处理,通配符,域属性调用,校正参数名称,访问路径,请求、响应携带参数,请求方法)

      1.导入架包

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
        <parent>
            <artifactId>SpringMVC</artifactId>
            <groupId>cn.happy</groupId>
            <version>1.0-SNAPSHOT</version>
        </parent>
        <modelVersion>4.0.0</modelVersion>
        <artifactId>SpringMVC04Annotation</artifactId>
        <packaging>war</packaging>
        <name>SpringMVC04Annotation Maven Webapp</name>
        <url>http://maven.apache.org</url>
        <properties>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
            <!--spring对应的版本号-->
            <spring.version>4.2.1.RELEASE</spring.version>
        </properties>
        <dependencies>
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.0</version>
                <scope>test</scope>
            </dependency>
            <!--引入需要的spring 核心jar-->
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-context</artifactId>
                <version>${spring.version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-core</artifactId>
                <version>${spring.version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-beans</artifactId>
                <version>${spring.version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-expression</artifactId>
                <version>${spring.version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-webmvc</artifactId>
                <version>${spring.version}</version>
            </dependency>
        </dependencies>
        <build>
            <finalName>SpringMVC04Annotation</finalName>
        </build>
    </project>

      2.配置中央调度器(乱码处理、处理器)

    <!DOCTYPE web-app PUBLIC
            "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
            "http://java.sun.com/dtd/web-app_2_3.dtd" >
    
    <web-app>
        <display-name>Archetype Created Web Application</display-name>
        
        <filter>
            <filter-name>CharactorEncoding</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>
            <init-param>
                <param-name>forceEncoding</param-name>
                <param-value>true</param-value>
            </init-param>
        </filter>
        
        <filter-mapping>
            <filter-name>CharactorEncoding</filter-name>
            <url-pattern>/*</url-pattern>
        </filter-mapping>
    
    
        <servlet>
            <servlet-name>springmvc</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>springmvc</servlet-name>
            <url-pattern>/</url-pattern>
        </servlet-mapping>
        
    </web-app>

      3、配置映射器

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans   http://www.springframework.org/schema/beans/spring-beans.xsd
          http://www.springframework.org/schema/mvc
          http://www.springframework.org/schema/mvc/spring-mvc.xsd
          http://www.springframework.org/schema/context
          http://www.springframework.org/schema/context/spring-context.xsd">
    <!--扫描包下的路径--> <context:component-scan base-package="cn.happy.controller"/> <!--根据注解来寻找路径--> <mvc:annotation-driven/> </beans>

      4.1:视图(登录页面)

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>Title</title>
    </head>
    <body>
    <h2>Login</h2>
    <form action="/user/login" method="post">    这里的红色字体要根据RequestMapping的请求方法来进行更换
        登陆名:<input name="name"/>            校正参数名称时,这里要改成    uname
        汽车品牌1:<input name="userCars[0].brand"/>
        汽车品牌2:<input name="userCars[1].brand"/>
        <input type="submit" value="登录"/>
    </form>
    </body>
    </html>

      4.2:登录成功页面

    <%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
    <html>
    <head>
    <title>Title</title>
    </head>
    <body>
    <h2>Success!</h2>
    <%--${uname}--%>     在最后一个案例要放开注解
    <%--${list}--%>      在最后一个案例要放开注解
    </body>
    </html>

      5.1:实体类(用户)

    import java.util.List;
    public class UserInfo {
        private String name;
        private Car car;
        private List<Car> userCars;
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public Car getCar() {
            return car;
        }
        public void setCar(Car car) {
            this.car = car;
        }
        public List<Car> getUserCars() {
            return userCars;
        }
        public void setUserCars(List<Car> userCars) {
            this.userCars = userCars;
        }
    }

      5.2:实体类(用户的域属性)

    public class Car {
        private String brand;
        public String getBrand() {
            return brand;
        }
        public void setBrand(String brand) {
            this.brand = brand;
        }
    }

      6.处理器(通配符的用法、请求方法的定义)

    import cn.happy.bean.UserInfo;
    import org.springframework.stereotype.Controller;
    import org.springframework.ui.Model;
    import org.springframework.web.bind.annotation.PathVariable;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestMethod;
    import org.springframework.web.bind.annotation.RequestParam;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
    import java.util.ArrayList;
    @Controller
    @RequestMapping("/user")
    public class FirstController {
        //*代表0个或者多个字符,以带有first的字符,或者开头、结尾就行
        @RequestMapping("/*first*")
        public String doFirst() {
            return "/success.jsp";
        }








    //**:0级或者是无限极目录
        @RequestMapping("/**/second")
        public String doSecond() {
            return "/success.jsp";
        }

     

    //*:有且只能有一级目录,不能是空目录
        @RequestMapping(value = "/*/third", method = RequestMethod.GET)
        public String doThird() {
            return "/success.jsp";
        }

    //对象的属性获取和自定义类型的属性获取
        @RequestMapping("/login")
        public String doFirst(UserInfo info) {
            System.out.println(info.getName());
            System.out.println(info.getUserCars().get(0).getBrand());
            System.out.println(info.getUserCars().get(1).getBrand());
            return "/success.jsp";
        }
        跳转到
        控制台
       //校正参数名称    将上方的请求路径更改成/user/second    和表单元素的name属性保持一致,即可实现自动装配
        @RequestMapping("/second")
        public String doSecond(@RequestParam(value = "uname", required = false) String info) {
            System.out.println(info);
            return "/success.jsp";
        }

        跳转到

        控制台

    //路径变量
        @RequestMapping("/{runame}/{uage}/third")
        public String Third(@PathVariable("runame") String uname, @PathVariable String uage) {
            System.out.println(uname);
            System.out.println(uage);
            return "/success.jsp";
        }
        控制台




    //session和Model的使用
        @RequestMapping(value = "/four")
        public String doFirst(HttpServletRequest request, HttpServletResponse response, HttpSession session, Model model) {
            session.setAttribute("uname", "happy");
            model.addAttribute("list", new ArrayList<String>());
            return "/success.jsp";
        }
    }
  • 相关阅读:
    UVA 10462 Is There A Second Way Left?(次小生成树&Prim&Kruskal)题解
    POJ 1679 The Unique MST (次小生成树)题解
    POJ 2373 Dividing the Path (单调队列优化DP)题解
    BZOJ 2709 迷宫花园
    BZOJ 1270 雷涛的小猫
    BZOJ 2834 回家的路
    BZOJ 2506 calc
    BZOJ 3124 直径
    BZOJ 4416 阶乘字符串
    BZOJ 3930 选数
  • 原文地址:https://www.cnblogs.com/Chenghao-He/p/7768241.html
Copyright © 2011-2022 走看看