Spring: Springmvc

跳转:

 

 

接收参数:

 

 乱码:

 

 

 

 

 

 

web.xml

<!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>
    <filter-name>charset</filter-name>
    <!--<filter-class>io.oar.filter.CharacterEncodingFilter</filter-class>-->
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <init-param>
      <param-name>encoding</param-name>
      <param-value>UTF-8</param-value>
    </init-param>
  </filter>
  <filter-mapping>
    <filter-name>charset</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>

  <!--配置Spring MVC核心servlet-->
  <servlet>
    <servlet-name>springmvc</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <!--配置spring MVC配置文件位置-->
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:/springmvc.xml</param-value>
    </init-param>
  </servlet>

  <servlet-mapping>
    <servlet-name>springmvc</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>
</web-app>

springmvc.xml

<?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:context="http://www.springframework.org/schema/context"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       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="io.oar.controller"/>

  <!--配置处理器映射器-->
  <!--<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/>-->

  <!--配置处理器适配器-->
  <!--<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"/>-->

  <mvc:annotation-driven/>

  <!--配置视图解析器-->
  <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/"/>
    <property name="suffix" value=".jsp"/>
  </bean>
</beans>

Forward and Redirect

package io.oar.controller;


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

@Controller
@RequestMapping("forwardAndRedirect")
public class ForwardAndRedirectController{
  /**
   * controller跳转到jsp页面默认forward跳转
   */
  @RequestMapping(value = {"test"})
  public String test(){
    System.out.println("test");
    return "index";
  }

  /**
   * return "redirect:/index.jsp  return "redirect:视图全名"
   * redirect跳转不经过视图解析器
   */
  @RequestMapping("test1")
  public String test1(){
    System.out.println("test1");
    return "redirect:/index.jsp";
  }

  /**
   * forward跳转到相同controller类中不同方法 地址栏不变
   * return "forward:/@RequestMapping的路径(类)/@RequestMapping的路径(方法)
   */
  @RequestMapping("test2")
  public String test2(){
    System.out.println("test2");
    return "forward:/forwardAndRedirect/test";
  }

  /**
   * redirect跳转到相同controller类中不同方法 地址栏改变
   * return "forward:/@RequestMapping的路径(类)/@RequestMapping的路径(方法)
   */
  @RequestMapping("test3")
  public String test3(){
    System.out.println("test3");
    return "redirect:/forwardAndRedirect/test";
  }

  /**
   * 跳转到不同controller类
   * forward: redirect:
   */
  @RequestMapping("test4")
  public String test4(){
    System.out.println("test4");
    return "forward:/hello/hello";
  }

  @RequestMapping("test5")
  public String test5(){
    System.out.println("test5");
    return "redirect:/hello/hello";
  }
}

Parameter

package io.oar.controller;


import io.oar.entity.User;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

import java.util.Date;

@Controller
@RequestMapping(value = {"param"})
public class ParamController{
  /**
   * Date yyyy/M/D H:M:S
   */
  @RequestMapping("beam")
  public String beam(String name, Integer age, Double price, Boolean sex, Date birthday){
    System.out.println("name = " + name);
    System.out.println("age = " + age);
    System.out.println("price = " + price);
    System.out.println("sex = " + sex);
    System.out.println("birthday = " + birthday);
    return "index";
  }

  /**
   * object 类型参数 name会同时被赋值
   */
  @RequestMapping("beam1")
  public String beam1(User user, String name){
    System.out.println("user = " + user);
    System.out.println("name = " + name);
    return "index";
  }

  /**
   * 数组参数
   */
  @RequestMapping("beam2")
  public String beam2(String[] b){
    for(String s : b){
      System.out.println("s = " + s);
    }
    return "index";
  }

  /**
   * 集合 必须放到对象属性
   */
  @RequestMapping("beam3")
  public String beam3(User user){
    System.out.println("user.getB() = " + user.getB());
    return "index";
  }
  // public String beam3(List<String> b){
  //   b.forEach(s-> System.out.println("s: "+s));
  //   return "index";
  // }
}

 

 

 

 

 

posted @ 2022-04-14 23:59  ascertain  阅读(19)  评论(0编辑  收藏  举报