springmvc

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: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 https://www.springframework.org/schema/mvc/spring-mvc.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">
<!--配置扫描controller包-->
    <context:component-scan base-package="com.getech.controller"/>

    <!--
    RequestMappingHandlerMapping 这个处理器映射器,可以查找到所有接口上的 @RequestMapping 注解,并且根据请求的 URL 地址以及注解中的值,为一个请求定位到 处理器
    -->
<!--    <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/>-->

<!--    <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"/>-->

<!--    配置转换器-->
    <bean class="com.getech.converter.DataConvert" id="dataConvert"></bean>
    <bean class="org.springframework.format.support.FormattingConversionServiceFactoryBean" id="conversionService">
           <property name="converters">
               <set>
                   <ref bean="dataConvert"></ref>
               </set>
           </property>
    </bean>
    <!-- 这一个注解相当于上面的两个bean(RequestMappingHandlerMapping,RequestMappingHandlerAdapter)-->
    <mvc:annotation-driven conversion-service="conversionService"/>

    <!-- 视图解析器
     作用:1.捕获后端控制器的返回值="index"
          2.解析: 在返回值的前后 拼接 ==> "/index.jsp"
 -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="viewResolver">
        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
        <property name="prefix" value="/WEB-INF/jsp/"/>
        <property name="suffix" value=".jsp"/>
    </bean>
</beans>

web.xml配置

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
    <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:springmvc.xml</param-value>
        </init-param>
        <!-- Servlet启动时刻:可选 -->
        <load-on-startup>1</load-on-startup>
    </servlet>

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

<!--   配置filter 统一字符编码 -->
    <filter>
        <filter-name>encodingFilter</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<!--        配置CharacterEncodingFilter 类里面的参数-->
        <init-param>
            <param-name>encoding</param-name>
            <param-value>UTF-8</param-value>
        </init-param>
        <init-param>
            <param-name>forceRequestEncoding</param-name>
            <param-value>true</param-value>
        </init-param>
        <init-param>
            <param-name>forceResponseEncoding</param-name>
            <param-value>true</param-value>
        </init-param>
    </filter>

    <filter-mapping>
        <filter-name>encodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
</web-app>

主要代码及其使用
HelloController类

@Controller
@RequestMapping("/springmvc")
public class HelloController {

    @RequestMapping("/hello")
    public ModelAndView hello(){
        ModelAndView modelAndView = new ModelAndView("hello");
        modelAndView.addObject("name","hello spring mvc");
        return modelAndView;
    }

    /**
     * 重定向进行页面跳转
     */
    @RequestMapping("/redirectPage")
    public String redirectPage(){
        return "redirect:https://www.baidu.com";
    }
    /**
     * 使用转发进行页面跳转
     */
    @RequestMapping("/forwardPage")
    public String forwardPage(){
        //跳转到本类中的hello里面
        return "forward:/springmvc/hello";
    }
    //也可以使用转发跳转到一个jsp页面

    @RequestMapping("/forwardJspPage")
    public String forwardJspPage(){

        return "forward:/WEB-INF/jsp/world";
    }

    /**
     * 客户端进行跳转,springmvc 容器会将返回的字符串进行处理,寻找这个名字的视图,找到就返回这个页面
     */
    @RequestMapping("/hello3")
        public String jspPage(){
        return "world";
        }

    /**
     * @ResponseBody 的作用,这个方法返回的内容不让springmvc容器去解析视图了,直接返回数据到“hello”页面上.还有就是会返回给前端页面时使用json数据返回
     * @return
     */
    @RequestMapping("/string")
    @ResponseBody
    public String test(){

        return "hello";
    }

    /**
     * 传参,接收前端传过来的参数
     * method  指定客户端访问这个controller的方法
     * 可以设置多个,也可以直接使用比如@GetMapping注解指定请求方法
     */
    @RequestMapping(value = "/reciverParams",method = {RequestMethod.GET,RequestMethod.POST,RequestMethod.DELETE})
    @ResponseBody
    public String reciverParams(String name,String hobby){
        System.out.println("name = " + name);
        System.out.println("hobby = " + hobby);
        return "请到服务端查看";
    }

    @PostMapping("/reciverParams2")
    @ResponseBody
    public String reciverParams(String name,String hobby,Integer age){
        System.out.println(name);
        System.out.println("hobby = " + hobby);
        System.out.println("age = " + age);
        return "请到服务端查看";
    }

UserController类

/**
 * @Controller
 * @ResponseBody
 *
 * 组合注解
 */
@RestController
@RequestMapping("/user")
public class UserController {
    /**
     * 获取前端传过来的对象
     */
    @GetMapping("/userInfo")
    public void getUser(User user){
        System.out.println("user = " + user);
    }

    /**
     * 拿到前端传过来的数组类型的数据
     * params 要和前端传来的数据name一致
     */
    @PostMapping("/stringArray")
    public void getStringArray(String[] params){
        System.out.println("Arrays.toString(params) = " + Arrays.toString(params));
    }
    /**
     * 路径参数获取
     * 在接收参数获取栏里面使用@PathVariable(需要指定参数名称) 获取,接收参数要和请求参数保持一致
     * 请求路径:
     * http://localhost:8080/springmvc_view/user/pathParams/zhangsan/18
     */

    @GetMapping("/pathParams/{username}/{age}")
    public void pathParams(@PathVariable("username")  String username,@PathVariable("age") Integer age){
        System.out.println("username = " + username);
        System.out.println("age = " + age);
    }
}

日期转换
DateConverter类

public class DataConvert implements Converter<String, Date> {
    private SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
    @Override
    public Date convert(String source) {
        try {
            //转换为日期格式
            return simpleDateFormat.parse(source);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return null;
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值