Spring MVC 多选框 绑定 Entity 中的 list 属性
问题描述:
有两个类:Record.java 和 User.java,Record中有个attenders属性,是List<User>类型。
我想绑定Record中的attenders。网上查了下,没有满意的结果,于是自己写了个简单的方法。
具体代码如下:
Record.java
public class Record {
public List<User> getAttenders() {
return attenders;
}
public void setAttenders(List<User> attenders) {
this.attenders = attenders;
}
public int getRecordId() {
return recordId;
}
public void setRecordId(int recordId) {
this.recordId = recordId;
}
public String getRecordName() {
return recordName;
}
public void setRecordName(String recordName) {
this.recordName = recordName;
}
private List<User> attenders;
private int recordId;
private String recordName;
}
User.java
public class User {
public int getUserId() {
return userId;
}
public void setUserId(int userId) {
this.userId = userId;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
private int userId;
private String userName;
}
MultiSelect.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
<title>main page</title>
<script type="text/javascript" src="js/jquery-1.6.4.min.js"></script>
<script type="text/javascript" src="js/jquery-ui-1.8.16.custom.min.js"></script> <script type="text/javascript">
function check(){
var index = ;
$.each(
$('#attenderSelect :selected'),function(){
var input = $('<input>');
input.attr("name","attenders["+index+"].userId");
input.attr("type","hidden");
input.attr("value",$(this).val());
$('#attenderSelect').append(input);
index ++;
}
);
} </script> </head>
<body> <input name="" type="hidden" value=""> <form:form action="./user.htm?method=multiSelect" method="post">
<table>
<tr>
<td>
<select id="attenderSelect" name="attenders.userId" multiple="multiple">
<c:forEach var="user" items="${userList }">
<option value="${user.userId}" >${user.userName }</option>
</c:forEach>
</select>
</td>
</tr> <tr>
<td>
<input type="text" name="recordName">
</td>
</tr> <tr>
<td>
<input type="submit" value="submit" onclick="check()">
</td>
</tr> </table>
</form:form> </body>
</html>
Controller method:
public class UserFormController extends MultiActionController {
public ModelAndView multiSelect(HttpServletRequest request,
HttpServletResponse response) throws Exception {
Record record = (Record) newCommandObject(Record.class);
bind(request,record);
// if(record.getAttenders() != null)
// for(User user : record.getAttenders()){
// System.out.println(user.getUserId());
// }
ModelAndView mav = new ModelAndView("index");
return mav;
}
}
通过在提交表单时,创建一些隐藏的 input ,并命名为 attenders[index].userId,这样就达到了将数据绑定到对象的目的了
Spring MVC 多选框 绑定 Entity 中的 list 属性的更多相关文章
- Spring MVC复选框(多项)
以下示例显示如何在使用Spring Web MVC框架的表单中使用多个复选框(Checkbox).首先使用Eclipse IDE来创建一个WEB工程,并按照以下步骤使用Spring Web Frame ...
- Spring MVC复选框
以下示例显示如何在使用Spring Web MVC框架的表单中使用复选框(Checkbox).首先使用Eclipse IDE来创建一个WEB工程,并按照以下步骤使用Spring Web Framewo ...
- extjs 点击复选框在表格中增加相关信息行
功能效果:点击复选框在表格中自动增加相关信息行,复选框取消则表格中内容自动删除 初始效果大概是这样~~~~~ // 定义初始 存放表格数据 var gridItems = []; //省份复选框 va ...
- Spring MVC普通类或工具类中调用service报空空指针的解决办法(调用service报java.lang.NullPointerException)
当我们在非Controller类中应用service的方法是会报空指针,如图: 这是因为Spring MVC普通类或工具类中调用service报空null的解决办法(调用service报java.la ...
- ASP.NET MVC之下拉框绑定四种方式(十)
前言 上两节我们讲了文件上传的问题,关于这个上传的问题还未结束,我也在花时间做做分割大文件处理以及显示进度的问题,到时完成的话再发表,为了不耽误学习MVC其他内容的计划,我们今天开始好好讲讲关于MVC ...
- spring mvc各种常见类型参数绑定方式以及json字符串绑定对象
在使用spring mvc作为框架的时候,为了规范,我们通常希望客户端的请求参数符合规范直接通过DTO的方式从客户端提交到服务端,以便保持规范的一致性,除了很简单的情况使用RequestParam映射 ...
- Spring MVC系列之模型绑定(SpringBoot)(七)
前言 上一节我们在SpringBoot中启用了Spring MVC最终输出了HelloWorld,本节我们来讲讲Spring MVC中的模型绑定,这个名称来源于.NET或.NET Core,不知是否恰 ...
- spring mvc:练习 @RequestParam(参数绑定到控制器)和@PathVariable(参数绑定到url模板变量)
spring mvc:练习 @RequestParam和@PathVariable @RequestParam: 注解将请求参数绑定到你的控制器方法参数 @PathVariable: 注释将一个方法参 ...
- jQuery取复选框值、下拉列表里面的属性值、取单选按钮的属性值、全选按钮、JSON存储、*去空格
1.jquery取复选框的值<!--引入jquery包--> <script src="../jquery-1.11.2.min.js"></scri ...
随机推荐
- VC++网络高级编程
内含<VC网络高级编程>电子书 及源代码. 第一章.TCP/IP协议.第二章.Winsock网络编程接口:第二章.Visual C++与网络编程:第四章.基本网络编程技术:第五章.Teln ...
- “易信”今日正式更新至V1.1版
热门移动通讯社交应用“易信”今日正式更新至V1.1版,目前用户已可在苹果AppStore和各大Android商店下载.新版本主要包括三大变化:开通公众平台.提供外部分享.强化社交安全,此外包含好友关系 ...
- CentOS下安装两个或多个Tomcat7
链接地址:http://lcbk.net/tomcat/1407.html 首先安装JDK 安装之前检查下是否已经安装了openJDK,如果已安装,建议用yum remove 卸载掉. [root@b ...
- 10994 - Simple Addition(规律)
Problem E Simple Addition Input: Standard Input Output: Standard Output Let’s define a simple recurs ...
- String类的一些方法
String 类有以下方法: startsWith(String prefix) boolean java.lang.String.startsWith(String prefix) Tests if ...
- POJ 1379 Run Away 【基础模拟退火】
题意:找出一点,距离所有所有点的最短距离最大 二维平面内模拟退火即可,同样这题用最小圆覆盖也是可以的. Source Code: //#pragma comment(linker, "/ST ...
- pay包注释(一)
lovep2c项目pay模块注释: views.py: def create_user_no(email): return md5(email).hexdigest().upper() + &q ...
- 1, sync_with_stdio(), tie()的应用
一.sync_with_stdio() 这个函数是一个“是否兼容stdio”的开关,C++为了兼容C,保证程序在使用了std::printf和std::cout的时候不发生混乱,将输出流绑在了一起. ...
- Sitemesh3的使用及配置
1 . Sitemesh 3 简介 Sitemesh 是一个网页布局和修饰的框架,基于 Servlet 中的 Filter,类似于 ASP.NET 中的‘母版页’技术.参考:百度百科,相关类似技术:A ...
- linux c 得到时间
ctime: 将时间和日期以字符串格式表示头文件: time.h函数定义: char *ctime(const time_t *timep); 应用举例:#include <stdio.h> ...