一、 实体參数

前面我们知道使用注解@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. 【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 ...

  2. Struts2中的设计模式

    http://blog.csdn.net/significantfrank/article/details/7712053 1. Command Pattern 基本定义: 把Command(Requ ...

  3. 开发Android逆向工具

    韩梦飞沙 yue31313 韩亚飞 han_meng_fei_sha  313134555@qq.com 源代码及演示程序,请点击这里下载 下载地址: [北方网通]    [电信网通] [下载说明] ...

  4. 在intellij idea 中进行android 单元测试

    本次用来测试的代码是sqlite进行数据操作. ######右键选择要进行单元测试的应用 #############弹出选择框,选择Android>Test Module>Next ### ...

  5. codevs 1014 装箱问题 2001年NOIP全国联赛普及组

    题目描述 Description 有一个箱子容量为V(正整数,0<=V<=20000),同时有n个物品(0<n<=30),每个物品有一个体积(正整数). 要求n个物品中,任取若 ...

  6. [BZOJ1305][CQOI2009]跳舞(网络流)

    1305: [CQOI2009]dance跳舞 Time Limit: 5 Sec  Memory Limit: 162 MBSubmit: 3944  Solved: 1692[Submit][St ...

  7. [Lydsy1806月赛] 路径统计

    题面在这里! xjb想的做法竟然不小心把std艹爆了qwq,我也很无奈啊.... 那接下来就说一下我的神奇做法qwq 如果是经常读我博客的童鞋会发现其实我以前就想要做这个题啦,只不过当时读错题啦... ...

  8. 查询续与ajax

    查询分组 事例:统计不止一个作者的图书:(作者数量大于一) Book.objects.all().values('name').annotate(author_num=Count('authors__ ...

  9. JDK源码学习笔记——TreeMap及红黑树

    找了几个分析比较到位的,不再重复写了…… Java 集合系列12之 TreeMap详细介绍(源码解析)和使用示例 [Java集合源码剖析]TreeMap源码剖析 java源码分析之TreeMap基础篇 ...

  10. (Mark)Myeclipse10.6 下怎么安装Jad插件

    Jad是java的反编译工具,是命令行执行,反编译出来的源文件可读性较高.可惜用起来不太方便.还好找到eclipse下的插件,叫jadclipse,安装好之后,只要双击.class文件,就能直接看源文 ...