Spring MVC接收参数(Map,List,JSON,Date,2个Bean)(记录一次面试惨状)
前几天投了一个中小型网络科技公司的简历,收到面试,今天前去面试,由于他们的笔试题和面试题我几乎都接触过,所以感觉很良好,但是下午笔试第二家上机操作题时,真正的感受到了什么叫做体无完肤的被虐,让我深刻的知道了,学习的道路还有多艰难,记录一次笔试题被虐的经历,激励自己刻苦学习,努力奋斗。
题目:Spring MVC 接收参数 (Map,List,Date,2个Bean,JSON)
看到题目的一瞬间就很懵,虽然之前学习过Sping MVC,但面对这个题目还是有些无从下手,所以只能翻阅以前Spring MVC的笔记,首先巩固Spring MVC的知识点,然而,时间就这么被浪费过去了,快结束了我还无从下手,最后,感谢面试官的格外开恩,让我回去做完,回去以后将所以完成,以作整理学习。
首先,创建一个User实体类,以作测试。
附上源代码:
public class User {
private String firstName;
private String lastName;
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
}
Spring MVC接收参数 -Map
首先,创建一个前台JSP页面,页面包含的内容很简单,就是一个简单的form表单。
附上主要代码:
<form action="map" method="post">
姓名:<input name="users['x'].firstName" />
电话:<input name="users['x'].lastName" />
<input type="submit" value="登录">
</form>
接收Map传递参数,必须新建一个实体类,内部定义Map属性变量。然后添加对应的set和get方法。
源代码如下:
import java.util.Map;
public class UserMap {
private Map<String, User> users;
public Map<String, User> getUsers() {
return users;
}
public void setUsers(Map<String, User> users) {
this.users = users;
}
}
然后,该编写控制器了。 尤其这部分,感觉自己很不扎实,之前理解的很浅。
@RequestMapping("/map")
public void test(UserMap userForm) {
for (Map.Entry<String, User> entry : userForm.getUsers().entrySet()) {
System.out.println(entry.getKey() + ": " + entry.getValue().getFirstName() + " - " +
entry.getValue().getLastName());
}
}
然后,做测试,控制台会打印对应的数据。
Spring MVC接收参数 -List
首先,让我们先创建一个前台的JSP页面,页面内容只需包含一个form表单即可 。
<form action="saysth.do" method="post">
姓:<input name="users[0].firstName" />
名:<input name="users[0].lastName" />
<input type="submit" value="登录">
</form>
然后,我们需要创建一个新的实体类,里面声明List私有变量,并添加对应的set和get方法。
import java.util.List;
public class UserListForm {
private List<User> users;
public List<User> getUsers() {
return users;
}
public void setUsers(List<User> users) {
this.users = users;
}
}
然后,编写List的控制器。
@RequestMapping("/saysth.do")
public void test(UserListForm userForm) {
for (User user : userForm.getUsers()) {
System.out.println(user.getFirstName() + " - " + user.getLastName());
}
}
Spring MVC接收参数之List 成功,自我感觉还是需要加强巩固和复习,需要继续理解深入和练习才能够更好的掌握这些知识点。
Spring MVC接收参数 -date
首先,继续创建一个前台JSP页面。
<form action="date.action/d1" method="post">
生日(格式yyyy-MM-dd):<input name="birthday"/>
<input type="submit" value="提交"/>
</form>
新建一个Date实体类。该实体类是重点!!!!!!!!
import org.springframework.format.annotation.DateTimeFormat;
public class Date {
//该注解切记不能忘记
@DateTimeFormat(pattern="yyyy-MM-dd")
private java.util.Date birthday;
public java.util.Date getBirthday() {
return birthday;
}
public void setBirthday(java.util.Date date) {
this.birthday = date;
}
@Override
public String toString() {
return "Date [birthday=" + birthday + "]";
}
}
编写date控制器代码。
@Controller
@RequestMapping("/date.action")
public class DateController {
@RequestMapping("/d1")
public String date(String birthday) throws ParseException, java.text.ParseException {
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
String dstr=birthday;
java.util.Date date=sdf.parse(dstr);
Date d1=new Date();
d1.setBirthday(date);
System.out.println(d1);
return "hello";
};
}
Spring MVC接收参数-date 完成,运行后控制台会打印出数据。
Spring MVC接收参数 -2个Bean
继续第一步,新建一个前台JSP显示页面。
<form action="submitUserList_1" method="post">
ID:<input type="text" name="id"><br/>
Username:<input type="text" name="name"><br/>
Password:<input type="text" name="pwd"><br/><br/>
ID:<input type="text" name="id"><br/>
Username:<input type="text" name="name"><br/>
Password:<input type="text" name="pwd"><br/><br/>
<input type="submit" value="submit">
</form>
下一步我们需要新建一个实体类来,实体类中添加相应的set和get方法。
public class User1 {
private Integer id;
private String name;
private String pwd;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", name='" + name + '\'' +
", pwd='" + pwd + '\'' +
'}';
}
}
编写bean的控制器代码。
@RequestMapping(value = "/submitUserList_1")
@ResponseBody
public String submitUserList_1(HttpServletResponse response,Integer[] id, String[] name, String[] pwd)
throws Exception{
String result = "";
if(id == null || id.length <= 0){ return "No any ID.中文"; }
List<User1> userList = new ArrayList<User1>();
for (int i = 0; i < id.length; i++ ) {
User1 user = new User1();
user.setId(id[i]);
user.setName(name[i]);
user.setPwd(pwd[i]);
userList.add(user);
}
System.out.println(userList);
return "hello";
}
Spring MVC接收参数 -JSON
最让我头疼的就是这个JSON,一直以前JSON方面的知识学的很不好,最担心和害怕的就是面试被问到关于JSON方面的知识,果然,遇到了就是一个艰难的障碍,学习无捷径,只能通过努力学习克服困难了。
首先,我们还是先创建JSP前台页面。
<input type="button" value="测试JSON数据" onclick="testJSON()" />
<script type="text/javascript" src="js/jquery.min.js"></script>
<script type="text/javascript">
function testJSON() {
$.ajax({
type: "POST",
url: "testJson",
contentType: "application/json",
dataType: "json",
data: JSON.stringify({"name":"张三"}),
success: function (jsonResult) {
alert(jsonResult);
}
});
}
</script>
然后,我们直接在控制器中编写相关代码即可。
@RequestMapping(value ="/testJson")
public String testJson(@RequestBody Map name, HttpServletRequest request){
System.out.println(name);
return "jsonp";
}
测试,即可完成,但是自我感觉JSON这部分还是有很多需要补充和完善的,只能通过接下来的学习更加完善了。
总结:
以上就是今天面试被虐的体无完肤的一道题了,希望在日后的道路中还可以继续扎实学习,刻苦学习,不骄傲,不浮躁,踏踏实实一步一步走出自己的路。
Spring MVC接收参数(Map,List,JSON,Date,2个Bean)(记录一次面试惨状)的更多相关文章
- spring mvc接收参数方式,json格式返回请求数据
1 使用方法形参使用变量接收提交的数据 2 在方法的形参中使用模型接收数据 3 如果在提交的表单中有多个数据模型,需要创建一个新的Bean,里面的属性是要接收的对象变量. 4 接收提交的日期字符串,转 ...
- spring mvc接收ajax提交的JSON数据,并反序列化为对象
需求:spring mvc接收ajax提交的JSON数据,并反序列化为对象,代码如下: 前台JS代码: //属性要与带转化的对象属性对应 var param={name:'语文',price:16}; ...
- spring mvc传入参数不仅仅转换为json,还可以直接将json字符串转换为具体的java对象
1.controller层 /** * 查看主播资料 * * @return */ @RequestMapping(value = { "/actor_details" }, me ...
- Spring MVC 接收Json格式参数
今天做了一个关于表格排序的功能,可以通过右边的箭头做排序操作,每次操作需要通过Ajax将每条记录的Id数组作为参数去发送请求, 后台Spring MVC接到参数后作更改序号操作. 前端页面发送请求的代 ...
- 【spring mvc】后台spring mvc接收List参数报错如下:org.springframework.beans.BeanInstantiationException: Failed to instantiate [java.util.List]: Specified class is an interface
后台spring mvc接收List参数报错如下:org.springframework.beans.BeanInstantiationException: Failed to instantiate ...
- 使用Spring mvc接收整个url地址及参数时注意事项
使用Spring mvc接收整个url地址及参数时注意事项:url= http://baidu?oid=9525c1f2b2cd45019b30a37bead6ebbb&td=2015-08- ...
- spring mvc接收数组
(一)前言 对于springmvc接收数组的问题啊,我试验过几次,但是了有时候成功了,有时候失败了,也不知道为啥的,然后现在又要用到了,所以打算具体看看到底怎么回事,但是了我实验成功了顺便找了好多资料 ...
- Spring MVC 解决 Could not write JSON: No serializer found for class java.lang.Object
Spring MVC 解决 Could not write JSON: No serializer found for class java.lang.Object 资料参考:http://stack ...
- spring mvc绑定参数之 类型转换 有三种方式:
spring mvc绑定参数之类型转换有三种方式: 1.实体类中加日期格式化注解(上次做项目使用的这种.简单,但有缺点,是一种局部的处理方式,只能在本实体类中使用.方法三是全局的.) @DateTim ...
随机推荐
- 主从同步遇到 Got fatal error 1236 from master when reading data from binary log: 'Could not find first log file name in binary log index file'时怎么解决
首先遇到这个是因为binlog位置索引处的问题,不要reset slave: reset slave会将主从同步的文件以及位置恢复到初始状态,一开始没有数据还好,有数据的话,相当于重新开始同步,可能会 ...
- @Transactional注解失效的解决方案
一.前言 开发中我们经常使用 @Transactional注解来启用Spring事务管理,但是如果使用方法不当,会遇到注解不生效该事务回滚的地方却没有回滚的问题. 总结下一般是以下几个原因: @Tra ...
- 伯俊BOS2.0关于订金单的处理方案
订金单功能调整设计 一. 功能确认 BPOS关于订金的使用对应的是"预收单",原"预收单"设置有商品明细,根据客户对订金的需求,取消原有"商品 ...
- linux下用户管理命令、用户组管理命令
useradd 添加新用户 1.基本语法 useradd 用户名 (功能描述:添加新用户) useradd -g 组名 用户名 (功能描述:添加新用户到某 ...
- Windows系统设置多用户同时远程登录
一.在键盘上按Win+R键(也可以在开始菜单右键然后选择运行),在运行的输入框里面输入"gpedit.msc"命令.然后点击确定 二.在"计算机组策略"中依次展 ...
- js--获取滚动条位置,并实现页面滑动到锚点位置
前言 这篇来记录下最近工作中遇到的一个问题,在app原生和前端h5混合开发的过程中,其中一个页面是选择城市列表的页面,类似于美团饿了么城市选择,银行app中银行列表选择,通讯录中快速定位到联系人选择的 ...
- TCP VS UDP
摘要:计算机网络基础 引言 网络协议是每个前端工程师都必须要掌握的知识,TCP/IP 中有两个具有代表性的传输层协议,分别是 TCP 和 UDP,本文将介绍下这两者以及它们之间的区别. 一.TCP/I ...
- LeetCode841 钥匙和房间
有 N 个房间,开始时你位于 0 号房间.每个房间有不同的号码:0,1,2,...,N-1,并且房间里可能有一些钥匙能使你进入下一个房间. 在形式上,对于每个房间 i 都有一个钥匙列表 rooms[i ...
- Linux学习笔记 | 常见错误之VMware启动linux后一直黑屏
方法1: 宿主机(windows)管理员模式运行cmd 输入netsh winsock reset 然后重启电脑 netsh winsock reset命令,作用是重置 Winsock 目录.如果一台 ...
- 【RAC】10grac添加节点,详细步骤
RAC物理结构 现在的RAC环境是二个节点: dbp,dbs, 这个实验就是添加节点dbi. dbp,dbs和dbi节点的信息规划如下: 服务器主机名 dbp dbs dbi 公共IP地址(eth0) ...