当前位置: 首页 > news >正文

Java课题笔记~ 数据提交的方式

前四种数据注入的方式,会自动进行类型转换。但无法自动转换日期类型。

(1)单个数据(基本数据类型)注入

在方法中声明一个和表单提交的参数名称相同的参数,由框架按照名称直接注入。

 

(2)对象封装注入

在方法中声明一个自定义的实体类参数,框架调用实体类中相应的setter方法注入属性值,只要保证实体类中成员变量的名称与提交请求的name属性值一致即可。

 

实体Bean含对象属性

比如:Student对象,其中有一个Address的对象属性,在Address对象中有country和city两个基本类型的属性。

<form action="${pageContext.request.contextPath}/objectParam" method="post"><fieldset><legend>对象数据提交</legend>姓名:<input type="text" name="stuname" /> <br />年龄:<input type="text" name="stuage" /> <br />国家:<input type="text" name="address.country" /> <br />城市:<input type="text" name="address.city" /> <br /><input type="submit" value="提交"></fieldset></form>

(3)动态占位符提交/路径变量(仅用于超链接)

使用框架提供的一个注解@PathVariable,将请求url中的值作为参数进行提取,只能是超链接。restful风格下的数据提取方式。

restful是一种软件架构风格、设计风格,而不是标准,只是提供了一组设计原则和约束条件。

它主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。

RESTful风格是把请求参数变为请求路径的一种编程风格。通过路径变量的使用,可以实现RESTful风格的编程。

中文乱码:

由于tomcat默认使用ISO-8859-1对接收的文本编码,因此要获得正确中文有两种解决方式:

  1. 自己转码

使用如下转码方式。先把name以ISO-8859-1再编码,还原成字节数组,再用UTF-8进行解码,即可获得正确中文。

String newName=new String(name.getBytes("ISO-8859-1"),"UTF-8");
  1. 修改tomcat | conf | server.xml

在server.xml的Connect中添加URIEncoding="utf-8",这样默认就是用utf-8解码了,参数绑定中文也可以正确显示:

<Connector port="8080" protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443" URIEncoding="utf-8"/>

另,web.xml配置的filter只对post请求有效,因此对此问题不是解决之道。

(4)请求参数名称与形参名称不一致

请求与形参中的名字不对应,可以使用

@RequestParam(value="name1",required=true) String namea来进行参数名称绑定。

(5)数组类型的请求参数

@RequestMapping("/arrayParam")
public String arrayParam(String[] hobby){System.out.println("我的爱好:");for(String s:hobby){System.out.println(s);}return "main";
}

(6)使用HttpServletRequest对象提取

在方法参数中声明一个request对象,使用request的getParameter()获取表单提交的数据,这样得到的数据还要手工进行数据类型的转换。

public String five(HttpServletRequest request){int age=new Integer(request.getParameter("stuage"));String name=request.getParameter("stuname");System.out.println(age+"*********"+name);return "main";
}

http://www.lryc.cn/news/128333.html

相关文章:

  • VUE3给页面添加按钮事件
  • 基于centos7.9通过nginx实现负载均衡以及反向代理
  • 前端原生写自定义旋转变换轮播图
  • linux tomcat server.xml 项目访问路径变更不生效
  • 介绍原型模式:快速构建和复制对象的设计模式
  • Unity的TimeScale的影响范围分析
  • 爬虫逆向实战(五)--猿人学第三题
  • [虚幻引擎] UE使用虚拟纹理在模型上显示挖空效果
  • vue3中reactive和ref的比较
  • Beats:使用 Filebeat 将 golang 应用程序记录到 Elasticsearch - 8.x
  • 【STM32+ESP8266上云连载①】给ESP8266烧录AT固件
  • 深入解析Spring基本概念和核心思想
  • Redis数据结构——快速列表quicklist、快表
  • excel统计函数篇3之rank系列
  • Flink 火焰图
  • kubectl get 中英文对照
  • R语言APSIM模型进阶应用与参数优化、批量模拟实践技术
  • 无涯教程-Perl - times函数
  • 《计算机网络:自顶向下方法》第五章--网络层:控制平面
  • Mysql存储引擎中InnoDB与Myisam的主要区别
  • 数据仓库 ODS->DWD->DWS->ADS
  • 【SpringBoot】SpringBoot获取不到用户真实IP怎么办
  • LightDB 23.3 plorasql 函数支持inout参数输出
  • SpringBoot第41讲:SpringBoot集成Redis - 基于RedisTemplate+Jedis的数据操作
  • 用 React+ts 实现无缝滚动的走马灯
  • 三维模型OSGB格式轻量化重难点分析
  • C#__事件event的简单使用:工具人下楼问题
  • 初识Spring-ioc
  • windows10 安装WSL2, Ubuntu,docker
  • Java面试题目汇总