首页 > 其他分享 >SpringMVC数据绑定

SpringMVC数据绑定

时间:2023-02-10 17:11:51浏览次数:42  
标签:RequestMapping SpringMVC 绑定 id 数据 public String

SpringMVC数据绑定

使用JavaBean绑定参数

  • Spring MVC会根据请求参数名和JavaBean属性名进行自动匹配,自动为对象填充属性值,同时支持级联属性

    package com.soutwind.entity;
    
    import lombok.Data;
    
    @Data
    public class Address {
        private  String value;
    }
    
package com.soutwind.entity;

import lombok.Data;

@Data
public class User {
    private long id;
    private  String name;
    private Address address;
}
<%--
  Created by IntelliJ IDEA.
  User: DELL
  Date: 2023/2/10
  Time: 14:52
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<form action="/save" method="post">
<%-- 表单里name的值映射到User类里面--%>
    用户id:<input type="text" name="id"><br/>
    用户名:<input type="text" name="name"><br/>
<%--级联操作,把name里面的值赋值adress属性里的value属性--%>
    用户地址<input type="text" name="address.value"><br/>
    <input type="submit" value="注册">

</form>
</body>
</html>

handler类中的save方法

@RequestMapping(value = "/save",method =RequestMethod.POST )
public String save(User user){//discapterAdapter对传过来的值进行自动填充,填充的参数可以是类创建的对象的方式
    System.out.println(user);
    return "index";
}

上述操作如果出现中文乱码问题,只需要在web.xml添加Spring自带的过滤器即可。

<!--在web.xml中配置解决中文乱码的过滤器-->
  <filter>
    <filter-name>encodingFilter</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>encodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>
  • JSP转发和重定向
  • 转发是一次请求,重定向是两次请求。
  • 转发请求的数据可以保留使用,重定向第一次请求的数据不可以给第二次请求。

Spring默认是以转发的形式相应jsp。

//转发,SpringMVC默认接收JSP的方式为转发
@RequestMapping(value = "/forward")
public String forward(){
    return "foward:/index.jsp";//效果和 return "index"默认效果一样
}

重定向

//重定向
@RequestMapping("/redirect")
public String redirect(){
    return "redirect:/index.jsp";
}
  • Spring MVC数据绑定

    概念:数据绑定:在后端的业务方法中直接获取客户端http请求中的参数,将请求参数映射到业务方法的形参中。

    SpringMVC 中数据绑定的工作是由 HandlerAdapter来完成的。

  • 基本数据类型。

package com.soutwind.controller;

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

@Controller
@RequestMapping("/data")
public class DataBindHandler {
    @RequestMapping("baseType" )
    @ResponseBody
    //@ResponseBody注解作用,不会把业务方法的返回值通过解析器解析成jsp,而是以它本身的形式返回给客户端

    public  String baseType(int id){
        return id+"";
    }
}

@ResponseBody表示SpringMVC 会直接将业务方法的返回值响应给客户端,如果不加@ResponseBody

注解,SpringMVC会将业务方法的返回值传递给DisapatherServlet,再由DisapatherServlet调用ViewResolver

对返回值进行解析,映射到一个JSP资源。

存在问题,id是基本数据类型,所以不能为空,不然会报错.

解决方法:包装类

  • 包装类:可以接受null
@RequestMapping("/packageType")
@ResponseBody
public String packageType(Integer id){
    return  id +"";
}

标签:RequestMapping,SpringMVC,绑定,id,数据,public,String
From: https://www.cnblogs.com/zhangtiedangg/p/17109672.html

相关文章

  • 检测数据类型方法
    1、typeOf:只能检测基本数据类型 console.log(typeof10)//number2、instanceOf:检测当前实例是否属于某个类的方法 console.log(arrinstanceofArray)//true3、......
  • 创建"zblog"与数据库修改~
    下载ZBLOGhttps://update.zblogcn.com/zip/Z-BlogPHP_1_7_2_3060_Tenet.zip解压缩  复制到D盘phpstudy/WWW中  删除error和index.html 重启MySQL和Nginx......
  • MySQL数据库系统部署使用
    推荐步骤: 在centos01上安装MySQL数据库服务,生成服务器配置文件,添加系统服务优化命令初始化MySQL,设置访问密码登录MySQL数据库 在centos01的MySQL服务器上创建数据库,数......
  • Mysql数据库备份恢复
    Mysql数据库备份恢复​推荐步骤:​使用mysqldump对数据库,数据库中表,一个数据库多个表,所有数据库进行备份,模拟数据丢失恢复备份的数据​配置mysql数据库开启二进制日志功能,配......
  • 创建zblog步骤与数据库修改
    下载Z-BlogPHP_1_7_2_3060_Tenet.zip压缩包解压缩,在把解压缩的文件复制粘贴到PHP所在的文件夹里,再把画圈的两个文件删掉在重新启动Nginx和MySQL打开浏览器输入127.0......
  • springboot SpEL关于@ConditionalOnExpression注解,在使用spel表达式引用配置属性bean
    springboot关于@ConditionalOnExpression注解,在使用spel表达式引用配置属性bean导致提前初始化,无绑定数据的问题及相应的解决方法。SpringBoot版本<parent>......
  • Go使用协程批量获取数据,加快接口返回速度
    服务端经常需要返回一个列表,里面包含很多用户数据,常规做法当然是遍历然后读缓存。使用Go语言后,可以并发获取,极大提升效率。使用channelpackagemainimport("fmt"......
  • 好客租房136-获取当前定位数据并渲染到列表中
    1如何获取到定位城市的信息2获取定位城市的代码封装成函数直接调用改方法就行3判断localstorage是否有这个城市4如果没有就通过首页中获取定位城市的代码获取存储到本地......
  • 好客租房137-获取当前定位数据的函数
    1将当前定位城市添加到cityList中2将当前定位城市的索引添加到cityIndex中asyncgetCityList(){constres=awaitaxios.get('http://localhost:8080/area/c......
  • Calcite SQL 解析、语法扩展、元数据验证原理与实战(下)
    上一篇文章我们介绍了CalciteSQL解析的原理以及如何扩展SQL语法,本篇我们将进入SQL执行的下一个阶段:元数据验证。二、Calcite元数据验证SQL成功解析为抽象语法树后,......