一、 实体參数

前面我们知道使用注解@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的更多相关文章

  1. springmvc 处理lsit类型的请求參数映射成实体属性

    <table align="center" cellspacing="10"> <tr> <td> 母码数目:<inp ...

  2. springmvc学习笔记(13)-springmvc注解开发之集合类型參数绑定

    springmvc学习笔记(13)-springmvc注解开发之集合类型參数绑定 标签: springmvc springmvc学习笔记13-springmvc注解开发之集合类型參数绑定 数组绑定 需 ...

  3. springMVC參数传递

    本文是本人在学习网络视屏springMVC的过程中的学习笔记. 为了更便于理解我决定从实际使用的角度解释. 我们在浏览器输入地址 http://localhost:8080/springMVC6/us ...

  4. springMVC --@RequestParam注解(后台控制器获取參数)

    在SpringMVC后台控制层获取參数的方式主要有两种,一种是request.getParameter("name"),第二种是用注解@RequestParam直接获取. 1.获取 ...

  5. springmvc学习笔记(12)-springmvc注解开发之包装类型參数绑定

    springmvc学习笔记(12)-springmvc注解开发之包装类型參数绑定 标签: springmvc springmvc学习笔记12-springmvc注解开发之包装类型參数绑定 需求 实现方 ...

  6. C# 多线程參数传递

    1.通过实体类来传递(能够传递多个參数与获取返回值),demo例如以下: 须要在线程中调用的函数: namespace ThreadParameterDemo { public class Funct ...

  7. struts开发&lt;struts中的參数传递.三&gt;

    不说废话,直接上干货 1.通过set和get传递參数 添加username 和password两个属性并添加set和get方法 package fzl.user.struts.demo; import ...

  8. 关于Netfilter NF_HOOK宏的outdev參数bug

    1.首先指出.NF_HOOK系列宏的outdev參数的传递方式(直接传递一个net_device结构体指针)是不对的 正确的方式要么是不传递.要么是传递指针的地址,即地址的地址. 2.接下来指出,仅仅 ...

  9. springMVC3.0(文件上传,@RequestMapping加參数,@SessionAttributes,@ModelAttribute,转发,重定向,数值获取,传參,ajax,拦截器)

    1.项目包结构例如以下: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdG90b3R1enVvcXVhbg==/font/5a6L5L2T/fontsiz ...

随机推荐

  1. 35、Flask实战第35天:权限设计

    二进制及其相关运算 认识二进制 0,1,2,3,4,5,6,7,8,9,10:逢10进1 0,1:逢2进1 二进制转十进制 十进制 二进制 0 0 1 1 2 10 3 11 4 100 255 11 ...

  2. sg函数总结

    http://blog.csdn.net/luomingjun12315/article/details/45555495 这一段时间写的题和我接下来要展示的一些概念都来自这里↑. 必胜点和必败点的概 ...

  3. BZOJ 3632 外太空旅行(最大团)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=3632 [题目大意] 求图中的最大团. [题解] 最大团问题是npc问题,因此可以考虑随 ...

  4. [xsy2289]B

    题意:给一棵树,一次操作定义为删掉一条树边再加一条边,并且满足加完边后这还是一棵树,问在进行不超过$k$次操作后能构造出多少种不同的树 首先...矩阵树定理在边有边权的时候同样适用,这时可以把它看成重 ...

  5. Java中的文件操作(一)RandomAccessFile

    今天,学到的是java中的文件操作. Java.IO.File Java中操作文件用到RandomAccessFile类,既可以读取文件内容,也可以向文件输出数据,但不同与普通输入/输出流的是Rand ...

  6. JavaScript之String类型

    这里先总结一下RegExp类型的两个主要方法: (1)exec():主要用于捕获组.接受一个参数,这个参数是主要应用模式的字符串,然后返回包含第一个匹配项信息的数组. (2)test():主要用于目标 ...

  7. opensue安装eclipse进行python开发

    date :20140214 auth:jin 1.install jdk zypper insgtall java-1_7_0-openjdk 2.环境 linux-gzy1:~ # env |gr ...

  8. 通过Chrome模拟和调试网速慢的情况来限制一些P2P视频网站上传速度占满的情况

  9. python 数据分析 Matplotlib常用图表

    Matplotlib绘图一般用于数据可视化 常用的图表有: 折线图 散点图/气泡图 条形图/柱状图 饼图 直方图 箱线图 热力图 需要学习的不只是如何绘图,更要知道什么样的数据用什么图表展示效果最好 ...

  10. [典型漏洞分享]exported Android content provider引发的隐私泄露问题

    YS android手机APP对外开放多余的content provider,可任意增.删.改和查images数据库表格,导致隐私泄露 问题描述: YS android手机APP使用SQLITE数据库 ...