Java-SpringMVC-数据绑定

2021-04-28  本文已影响0人  Vicent_Z

1.描述

1.1.数据绑定

SpringMVC通过URL Mapping注解进行URL映射和数据传输.
主要有:

//控制器注解
@Controller
//配置该Controller下的全局路径
@RequestMapping("/test")
public class TestController...

1.2.接收请求参数

1.3.URI绝对路径与相对路径

image.png

相对地址案例

1.4.关联对象赋值

<form ...>
    <input name="username"/>
    ...
    <input name="contract.username">
    ...
</form>

JavaBean中这样编写

public class User {
  private String username;
  ...
  private Contract contract;
  ...
}

public class Contract {
  private String username;
  ...
}

1.5.日期类型转换

    <!--配置日期转换器-->
    <mvc:annotation-driven conversion-service="conversionService"/>

    <bean id="conversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
        <property name="converters">
            <set>
                <bean class="com.vicent.springmvc.controller.converter.MyDateConverter"/>
            </set>
        </property>
    </bean>

并且编写转换器类

package com.vicent.springmvc.controller.converter;

import org.springframework.core.convert.converter.Converter;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class MyDateConverter implements Converter<String, Date> {

    public Date convert(String s){
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMdd");
        try {
            Date date = simpleDateFormat.parse(s);
            return date;
        } catch (ParseException e) {
            e.printStackTrace();
            return null;
        }
    }
}

1.6.中文乱码问题

打开tomcat->conf->server.xml文件

image.png

找到此段代码添加URIEncoding="UTF-8"

image.png
    <filter>
        <filter-name>characterFilter</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>
    </filter>

    <filter-mapping>
        <filter-name>characterFilter</filter-name>
        <!--拦截所有路径-->
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    <mvc:annotation-driven conversion-service="conversionService">
        <mvc:message-converters>
            <bean class="org.springframework.http.converter.StringHttpMessageConverter">
                <property name="supportedMediaTypes">
                    <list>
                        <value>text/html;charset=utf-8</value>
                    </list>
                </property>
            </bean>
        </mvc:message-converters>

    </mvc:annotation-driven>

1.7.响应输出

    @GetMapping("/g")
    @ResponseBody
    public String getRequest(@RequestParam(value = "manager_name") String managerName){
        System.out.println("managerName is:" + managerName);
        return "This is get request";
    }

    @GetMapping("/view")
    public ModelAndView showView(Integer userId){
        ModelAndView mav = new ModelAndView("/view.jsp");
        User user = new User();
        if (userId == 1){
             user.setUserName("Tom");
        }else {
            user.setUserName("张三");
        }
        mav.addObject("u",user);
        return mav;
    }

jsp代码

<html>
<head>
    <title>Test JSP</title>
</head>
<body>
    <h1>This is test JSP!</h1>
    <h2>UserName:${u.userName}</h2>
</body>
</html>

重定向使用

ModelAndView mav = new ModelAndView("redirect:/view.jsp");

https://github.com/DeveloperZhang/SwiftStudyDemo

2.总结

此篇是SpringMVC的简单实例,包括基本的传值,跳转和一些数据转换操作.

上一篇 下一篇

猜你喜欢

热点阅读