zoukankan      html  css  js  c++  java
  • springmvc的注解式开发

    1 简写前后缀 

    public class Frist implements Controller {
        public ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {
            ModelAndView mx=new  ModelAndView();
            mx.setViewName("index");
            return mx;
        }
    }

    在spring中加入了  

    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/"></property>
        <property name="suffix" value=".jsp"></property>
    </bean> 

    这么写就行了 

     关于静态资源无法访问的问题 

     3种解决方案 

     1  web.xml中加mapping 

      

     <!--<servlet-mapping>-->
            <!--<servlet-name>default</servlet-name>-->
            <!--<url-pattern>*.PNG</url-pattern>-->
        <!--</servlet-mapping>-->
    
        <!--<servlet-mapping>-->
            <!--<servlet-name>default</servlet-name>-->
            <!--<url-pattern>*.jpg</url-pattern>-->
        <!--</servlet-mapping>-->

       直接加入mapping   什么类型就写什么 .什么结尾 

        2

    <mvc:default-servlet-handler></mvc:default-servlet-handler>

    在spring中加入这一行就行 

     3 

      <mvc:resources mapping="/img/**" location="/img/"></mvc:resources>

    加入这个  后面陪路径 

    现在来讲简写类的id 

      <bean id="send" class="springmmv.cn.dao.Frist"></bean>

     这个是哪个类的bean节点 ,这里的id改为了send  ,有两种 

      1

     <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
    
         
            <property name="urlMap">
                <map>
                    <entry key="/la" value="send"></entry>
                </map>
            </property>
    
        </bean>

    2

     <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
    
            <!--<property name="mappings">-->
                <!--<props>-->
                    <!--<prop key="/la">df</prop>-->
                <!--</props>-->
            <!--</property>-->
    
    
        </bean>

     urlMap  mappings

       我们访问是,还是写/la就行  

    现在我们来改写类 

    我们让她继承一下 

    AbstractController   
    public class Frist extends AbstractController {
        protected ModelAndView handleRequestInternal(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {
            ModelAndView mx=new  ModelAndView();
         mx.setViewName("index");
         return mx;
        }
    
    }

    之后 ,spring的配置文件 要改写 

    <bean id="send" class="springmmv.cn.dao.Frist">
    
            <property name="supportedMethods" value="GET,POST"></property>
    
        </bean>

    改成这样就可以了

      

    参数的自动装配和路径变量  

    参数自动装配(四种)

    package demo08ParamAuto01.AutoWire;
    
    import java.util.List;
    
    /**
     * Created by mycom on 2018/3/26.
     */
    public class UserInfo {
        private String username;
        private String password;
        private Car car;
        private List<Car> list;
    
        public List<Car> getList() {
            return list;
        }
    
        public void setList(List<Car> list) {
            this.list = list;
        }
    
        public Car getCar() {
            return car;
        }
    
        public void setCar(Car car) {
            this.car = car;
        }
    
        public String getUsername() {
            return username;
        }
    
        public void setUsername(String username) {
            this.username = username;
        }
    
        public String getPassword() {
            return password;
        }
    
        public void setPassword(String password) {
            this.password = password;
        }
    }
    package demo08ParamAuto01.AutoWire;
    
    /**
     * Created by mycom on 2018/3/26.
     */
    public class Car {
        private String brand;
    
        public String getBrand() {
            return brand;
        }
    
        public void setBrand(String brand) {
            this.brand = brand;
        }
    }
    

      

    package demo08ParamAuto01.AutoWire;
    
    import org.springframework.stereotype.Controller;
    import org.springframework.ui.Model;
    import org.springframework.web.bind.annotation.PathVariable;
    import org.springframework.web.bind.annotation.RequestMapping;
    
    /**
     * Created by mycom on 2018/3/26.
     */
    @Controller
    public class UserInfoController {
     
        @RequestMapping("/login")
        public String doLogin(String username, String password, Model model){
            model.addAttribute("username",username);
            System.out.println(username);
            System.out.println(password);
            return "success";
        }
    
    
        @RequestMapping("/loginUserInfo")
        public String doLoginUserInfo(UserInfo info, Model model){
            model.addAttribute("username",info.getUsername());
            System.out.println(info.getUsername());
            System.out.println(info.getPassword());
            return "success";
        }
    
    
        
        @RequestMapping("/loginUserInfoCar")
        public String doLoginUserInfoCar(UserInfo info, Model model){
            model.addAttribute("username",info.getUsername());
            System.out.println(info.getUsername());
            System.out.println(info.getPassword());
            System.out.println(info.getCar().getBrand());
            return "success";
        }
    
        @RequestMapping("/loginUserInfoList")
        public String doLoginUserInfoList(UserInfo info, Model model){
            model.addAttribute("username",info.getUsername());
            System.out.println(info.getUsername());
            System.out.println(info.getPassword());
            System.out.println(info.getCar().getBrand());
            System.out.println(info.getList().get(0).getBrand());
            System.out.println(info.getList().get(1).getBrand());
            return "success";
        }
    }
    

      

    <?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="demo08ParamAuto01.AutoWire"></context:component-scan>
    
        <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
            <property name="prefix" value="/"></property>
            <property name="suffix" value=".jsp"></property>
        </bean>
    
    
    </beans>
    

        配置文件的扫描,之前都有     

      现在给一下,页面 jsp 

    <%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
    <html>
    <head>
        <title>Title</title>
    </head>
    <body>
    <form action="${pageContext.request.contextPath}/loginUserInfoList" method="post">
        用户名:<input name="username"/>
        密码:<input name="password"/>
        车:<input name="car.brand">
        车1:<input name="list[0].brand">
        车2:<input name="list[1].brand">
        名:<input name="uname">
        <input type="submit" value="提交">
    
    </form>
    </body>
    </html>
    

      

    2.路径变量  @PathVariable

    路径参数类似请求参数,但没有key部分,只是一个值。例如下面的URL: 
     http://localhost:9090/showUser/spring 
    其中的spring是表示用户的密码字符串。在Spring MVC中,spring被作为路径变量用来发送一个值到服务器。Sping 3以后Spring 3以后支持注解@PathVariable用来接收路径参数。为了使用路径变量,首先需要在RequestMapping注解的值属性中添加一个变量,该变量必须放在花括号之间

        @RequestMapping("/loginUserInfoPath/{username}")
        public String doLoginUserInfoPath(@PathVariable("username") String uname,String username){
            System.out.println(uname);
            System.out.println(username);
            return "success";
        }
     

    不要忘记修改web.xml和springmvc.xml的配置文件的路径和包的路径

    在页面上

     
    <%--
      Created by IntelliJ IDEA.
      User: mycom
      Date: 2018/3/26
      Time: 11:57
      To change this template use File | Settings | File Templates.
    --%>
    <%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
    <html>
    <head>
        <title>Title</title>
    </head>
    <body>
    <form action="${pageContext.request.contextPath}/loginUserInfoPath/happy" method="post">
        用户名:<input name="username"/>
        <input type="submit" value="提交">
    
    </form>
    </body>
    </html>
  • 相关阅读:
    27 Spring Cloud Feign整合Hystrix实现容错处理
    26 Spring Cloud使用Hystrix实现容错处理
    25 Spring Cloud Hystrix缓存与合并请求
    24 Spring Cloud Hystrix资源隔离策略(线程、信号量)
    23 Spring Cloud Hystrix(熔断器)介绍及使用
    22 Spring Cloud Feign的自定义配置及使用
    21 Spring Cloud使用Feign调用服务接口
    20 Spring Cloud Ribbon配置详解
    19 Spring Cloud Ribbon自定义负载均衡策略
    18 Spring Cloud Ribbon负载均衡策略介绍
  • 原文地址:https://www.cnblogs.com/LWLDD/p/8627099.html
Copyright © 2011-2022 走看看