springmvc使用实体參数和ServletAPI
一、 实体參数
前面我们知道使用注解@RequestParam能够获得參数的值,那么如今提交一个表单怎么获得当中的值了。你能够说能够使用request.getParameter("")获得,是的这样的方法确实能获得。那么如今假设表单有100个參数了。我们不会一个一个的去获得然后在set到model中,那样显得非常麻烦。事实上springmvc能直接把值一一相应到model中。以下来看下样例:
package com.ztz.springmvc.model; public class Users {
private String name;
private String password;
private Roles roles;
//省略get set方法 //重写toString()方便測试
@Override
public String toString() {
return "Users [name=" + name + ", password=" + password + ", roles="
+ roles + "]";
}
}
package com.ztz.springmvc.model; public class Roles {
private int id;
private String name;
//省略get set方法 //重写toString()方便測试
@Override
public String toString() {
return "Roles [id=" + id + ", name=" + name + "]";
}
}
package com.ztz.springmvc.controller; import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import com.ztz.springmvc.model.Users; @Controller
@RequestMapping("/user")
public class UsersController { @RequestMapping(value="/getparams",method=RequestMethod.POST)
private String findAll(Users users){
System.out.println(users);
return "users";
}
}
<form action="${basePath}user/getparams" method="post">
<label>username:</label><input type="text" name="name"/><br/>
<label>密 码:</label><input type="password" name="password"/><br/>
<label>编 号:</label><input type="text" name="roles.id"/><br/>
<label>角色名:</label><input type="text" name="roles.name"/><br/>
<input type="submit" value="提 交"/>
</form>
页面输入值,点击提交,控制台输出结果:
Users [name=test, password=password, roles=Roles [id=11, name=admin]]
二、 ServletAPI
以下来看springmvc里面怎么用ServletAPI,事实上非常好用的,看下样例:
@Controller
@RequestMapping("/user")
public class UsersController { @RequestMapping(value="/getparams",method=RequestMethod.POST)
private String findAll(Users users,HttpServletRequest request,
HttpSession session,HttpServletResponse response){
//放到request作用域
request.setAttribute("users", users);
//放到session
session.setAttribute("session", "session");
//输出cookie
response.addCookie(new Cookie("res", "response123"));
return "users";
}
}
表单的JSP还是前面的那个不变。来看下提交成功,转发到新的JSP页面:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>用户信息</title>
</head>
<body>
<h3>${users}</h3>
<h3>${session}</h3>
</body>
</html>
点击提交,看下结果:
springmvc使用实体參数和ServletAPI的更多相关文章
- springmvc 处理lsit类型的请求參数映射成实体属性
<table align="center" cellspacing="10"> <tr> <td> 母码数目:<inp ...
- springmvc学习笔记(13)-springmvc注解开发之集合类型參数绑定
springmvc学习笔记(13)-springmvc注解开发之集合类型參数绑定 标签: springmvc springmvc学习笔记13-springmvc注解开发之集合类型參数绑定 数组绑定 需 ...
- springMVC參数传递
本文是本人在学习网络视屏springMVC的过程中的学习笔记. 为了更便于理解我决定从实际使用的角度解释. 我们在浏览器输入地址 http://localhost:8080/springMVC6/us ...
- springMVC --@RequestParam注解(后台控制器获取參数)
在SpringMVC后台控制层获取參数的方式主要有两种,一种是request.getParameter("name"),第二种是用注解@RequestParam直接获取. 1.获取 ...
- springmvc学习笔记(12)-springmvc注解开发之包装类型參数绑定
springmvc学习笔记(12)-springmvc注解开发之包装类型參数绑定 标签: springmvc springmvc学习笔记12-springmvc注解开发之包装类型參数绑定 需求 实现方 ...
- C# 多线程參数传递
1.通过实体类来传递(能够传递多个參数与获取返回值),demo例如以下: 须要在线程中调用的函数: namespace ThreadParameterDemo { public class Funct ...
- struts开发<struts中的參数传递.三>
不说废话,直接上干货 1.通过set和get传递參数 添加username 和password两个属性并添加set和get方法 package fzl.user.struts.demo; import ...
- 关于Netfilter NF_HOOK宏的outdev參数bug
1.首先指出.NF_HOOK系列宏的outdev參数的传递方式(直接传递一个net_device结构体指针)是不对的 正确的方式要么是不传递.要么是传递指针的地址,即地址的地址. 2.接下来指出,仅仅 ...
- springMVC3.0(文件上传,@RequestMapping加參数,@SessionAttributes,@ModelAttribute,转发,重定向,数值获取,传參,ajax,拦截器)
1.项目包结构例如以下: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdG90b3R1enVvcXVhbg==/font/5a6L5L2T/fontsiz ...
随机推荐
- 【leetcode】200. Number of Islands
原题: Given a 2d grid map of '1's (land) and '0's (water), count the number of islands. An island is s ...
- Struts2中的设计模式
http://blog.csdn.net/significantfrank/article/details/7712053 1. Command Pattern 基本定义: 把Command(Requ ...
- 开发Android逆向工具
韩梦飞沙 yue31313 韩亚飞 han_meng_fei_sha 313134555@qq.com 源代码及演示程序,请点击这里下载 下载地址: [北方网通] [电信网通] [下载说明] ...
- 在intellij idea 中进行android 单元测试
本次用来测试的代码是sqlite进行数据操作. ######右键选择要进行单元测试的应用 #############弹出选择框,选择Android>Test Module>Next ### ...
- codevs 1014 装箱问题 2001年NOIP全国联赛普及组
题目描述 Description 有一个箱子容量为V(正整数,0<=V<=20000),同时有n个物品(0<n<=30),每个物品有一个体积(正整数). 要求n个物品中,任取若 ...
- [BZOJ1305][CQOI2009]跳舞(网络流)
1305: [CQOI2009]dance跳舞 Time Limit: 5 Sec Memory Limit: 162 MBSubmit: 3944 Solved: 1692[Submit][St ...
- [Lydsy1806月赛] 路径统计
题面在这里! xjb想的做法竟然不小心把std艹爆了qwq,我也很无奈啊.... 那接下来就说一下我的神奇做法qwq 如果是经常读我博客的童鞋会发现其实我以前就想要做这个题啦,只不过当时读错题啦... ...
- 查询续与ajax
查询分组 事例:统计不止一个作者的图书:(作者数量大于一) Book.objects.all().values('name').annotate(author_num=Count('authors__ ...
- JDK源码学习笔记——TreeMap及红黑树
找了几个分析比较到位的,不再重复写了…… Java 集合系列12之 TreeMap详细介绍(源码解析)和使用示例 [Java集合源码剖析]TreeMap源码剖析 java源码分析之TreeMap基础篇 ...
- (Mark)Myeclipse10.6 下怎么安装Jad插件
Jad是java的反编译工具,是命令行执行,反编译出来的源文件可读性较高.可惜用起来不太方便.还好找到eclipse下的插件,叫jadclipse,安装好之后,只要双击.class文件,就能直接看源文 ...