SpringMVC 的传参问题

1. SpringMVC 简单的传参问题

在浏览器的前端页面,模拟传入 usernamepassword 两个参数

<a href="/test/param?username=ffideal&password=123456">开始跳转</a>

然后在 controller 层写下方法

    /*** @Description: 测试一个SpringMVC基本的传参问题* @param:* @return:* @auther: ffideal* @date:*/@RequestMapping(path = "/param")public String toSuccess(String username,String password){System.out.println("成功跳转到success页面");System.out.println("用户名:" + username);System.out.println("密码是:" + password);return "/success";}

2. 参数绑定实体类型

  1. 首先创建一个实体类
public class Consumer implements Serializable {private String uname;private String upassword;private double price;
}
  1. 在前端传输数据
<%--请求参数绑定--%>
<form action="/test/request" method="post">姓名:<input type="text" name="uname"/> <br>密码:<input type="text" name="upassword"/> <br>价格:<input type="text" name="price"/> <br><input type="submit" value="提交">
</form>
  1. controller 层处理请求
@RequestMapping("request")
public String testRequest(Consumer consumer){System.out.println("成功跳转到success页面");System.out.println("消费者名:" + consumer);return "/success";
}

3. 配置解决中文乱码的过滤器

在 web.xml 中配置如下

<filter><filter-name>characterEncodingFilter</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>characterEncodingFilter</filter-name><url-pattern>/*</url-pattern>
</filter-mapping>

这样在 post 作为提交方式的时候,中文也可以被传入。

4. 关于自定义类型转换器的实现

这样的日期格式在后台处理的时候会出现问题

表示提交的类型有问题

首先设置一个过滤类

public class StringToDate implements Converter<String, Date> {/*** @Description: 传入字符串,转为日期类型*/@Overridepublic Date convert(String source) {if (source == null){throw  new RuntimeException("输入数据不能为空");}try {// 将 yyyy-MM-dd 这种类型转为正常的日期DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");return dateFormat.parse(source);} catch (Exception e) {throw  new RuntimeException("数据转换出现问题");}}
}

然后在 配置文件 springmvc-config 中配置参数

<!--  配置自定义类型转换器 -->
<!--  首先引入 ConversionServiceFactoryBean 类-->
<bean id="conversionService" class="org.springframework.context.support.ConversionServiceFactoryBean"><!-- 设置参数 --><property name="converters"><!--  ConversionServiceFactoryBean 源码中只有一个set类型--><set><!-- 将StringToDate处理类放入容器中 --><bean class="untils.StringToDate"></bean></set></property></bean><!--开启springmvc框架注解支持--><!-- 要加入conversion-service -->
<mvc:annotation-driven conversion-service="conversionService"/>

5. 一些原始API

SpringMVC 还支持使用原始 ServletAPI 对象作为控制器方法的参数。

@RequestMapping("testAPI")
public String testAPI(HttpServletRequest request, HttpServletResponse response){System.out.println("执行了...");System.out.println(request);System.out.println(request.getSession());System.out.println(request.getSession().getServletContext());System.out.println(response);return "/success";
}

【SpringMVC 之应用篇】 2_SpringMVC 的传参问题相关推荐

  1. WorkFlow设计篇Step.2—传参的用法-订单金额的处理(续)-WF4.0

    开篇 上一篇,我们开始讲述WF4.0中的设计篇的开始,本系列主要讲述如何结合业务来设计工作流处理流程,并说明如何使用工作流流程来设计完成具体的业务流程处 理过程,将原来的代码处理业务流程,修改成WF可 ...

  2. C++11多线程第三篇:线程传参详解,detach()大坑,成员函数做线程参数

    文章目录 3.1 传递临时对象作为线程参数 3.1.1 要避免的陷阱(解释1) 3.1.2 要避免的陷阱(解释2) 3.1.3 总结 3.2 临时对象作为线程参数进一步详解 3.2.1 线程id概念 ...

  3. DWR第四篇之对象传参

    1. 本示例在第一篇架构基础上添加代码 2. 首先,在dwr.xml文件里添加对象转换器 3. 编写Person实体类 1 package com.skyer.vo; 2 3 import java. ...

  4. “约见”面试官系列之常见面试题之第一百零一篇之vue-router传参(建议收藏)

    vue-router传递参数分为两大类 编程式的导航 router.push 声明式的导航 <router-link> 编程式的导航 router.push 编程式导航传递参数有两种类型: ...

  5. java 页面接收参数_详解SpringMVC——接收请求参数和页面传参

    spring接收请求参数: 1,使用HttpServletRequest获取 @RequestMapping("/login.do") public String login(Ht ...

  6. jfinal ajax传值,JFINAL+Ajax传参 array 数组方法 获取request中数组操作

    前台代码js var _list =[]; for (var i = 0; i < array.length; i++) { _list[i] = array[i]; } $.ajax({ ty ...

  7. ajax deletemapping,springmvc使用put,delete方法传参问题,以及使用@PutMapping注解和@DeleteMapping注解...

    首先我们要知道@PutMapping,@DeleteMapping的作用: @PutMapping:"对应修改操作,表明是一个修改URL映射". @DeleteMapping:&q ...

  8. 5.springMVC数据回显(就是后台向页面传参的过程)

    视频教程地址:http://edu.51cto.com/sd/2cfc2 数据回显其实就是指后台像前台传参的一个过程,这里介绍几种常见的数据回显: 1.springMVC会自动回显的实体类 2.常见的 ...

  9. python传递参数格式_Python语言学习基础篇之Python发送Post请求之根据参数位置传参、数据类型、不同方式传参...

    本文主要介绍了Python语言学习基础篇之Python发送Post请求之根据参数位置传参.数据类型.不同方式传参,通过具体的内容向大家展现,希望对大家Python语言的学习有所帮助. 目录 一.验证 ...

最新文章

  1. 客户信贷评级 Python 实战
  2. Cookie 和 Session的区别
  3. java字符常量括_Java常量 变量 数据类型
  4. 2020-12-23
  5. cus.crm.myaccounts.util.Util.isIntentSupported
  6. Python爬虫_Requests
  7. 【Kafka】Kafka Record for partition topic at offset xx is invalid, cause: Record corrupt
  8. Graphics samples2
  9. 算法笔记_138:稳定婚姻问题(Java)
  10. java全栈工程师进阶路线
  11. 19年绝响,张国荣「复活」!AI高清修复《热·情》燃爆2000万观众
  12. java zhs16gbk_oracle 修改字符集 为ZHS16GBK
  13. Maven Assembly插件介绍
  14. XEN的启动信息输出到“Platform timer is 14.318MHz HPET”就暂停接收的解决办法
  15. 华为鸿蒙系统支持19款机型 有你的手机吗,华为鸿蒙OS再生变数,首批只有19款机型可升级,有你的手机吗?...
  16. http chunk
  17. 综合架构-高可用服务
  18. 2021年6月27日 root Redmi Note 8
  19. php求三个数中间值
  20. BeanFactory和ApplicationContext接口的联系和区别

热门文章

  1. 已经到了快元旦,可是总是不自在
  2. 最优化算法python实现篇(4)——无约束多维极值(梯度下降法)
  3. Python:glob模块
  4. TensorFlow入门:计算图
  5. java元婴期(18)----java进阶(spring(2)----DI(依赖注入)基于注解的IOC与DI配置properties)
  6. 设计模式--命令(Command)模式
  7. 关于 pip install mysqlclent安装失败 ERROR: No matching distribution found for mysqlclient 的解决方案
  8. python网络编程—TCP协议(一)
  9. vector、map 内存释放
  10. Intel 平台编程总结----缓存的优化