关于form表单提交循环数据,后台controller方法如何接受数据的格式问题

需求描述:我想弄一个学生表格,在每一行登记成绩,然后把这个表格一起提交给后台,那么我得把每个学生的学生id,分数一起提交,需要用到循环,挨个提交,如图所示在这里插入图片描述
此时利用JSTL的挨个提交,后台接受数据有两种方法:
第一种:
1.

<form action="${basePath}/addScore" method="post" id="form" accept-charset="UTF-8">
		    <c:forEach var="i" begin="0" end="${requestScope.users.size()-1}" step="1">
		    		<input type="hidden" name="rob_classList[${i}].reserve_id" id="reserve_id"  value="${requestScope.reserve_id}"></input> 
					<input type="hidden" name="rob_classList[${i}].user_id" id="user_id"  value="${requestScope.users.get(i).user_id}"></input> 
					<tr >				
						<td >${requestScope.users.get(i).institute }</td>
						<td >${requestScope.users.get(i).major }</td>
						<td >${requestScope.users.get(i).class_name }</td>
						<td >${requestScope.users.get(i).login_name }</td>
						<td >${requestScope.users.get(i).user_name}</td>
						<td><input name="rob_classList[${i}].sumScore" id="sumScore" type="text"/></td>
					</tr>		
			</c:forEach> 
		</form>

此时在foreach中利用迭代元素i来获取后台来的数据,并且把想传到后台的数据的name=数组元素的相应属性,如name=“rob_classList[${i}].sumScore”
2.在后台controller方法写成如下形式

@RequestMapping("addScore")
	@ResponseBody
	public ExecResult addScore(@Param("rob_classList") Rob_classList rob_classList) {
		System.out.println("我进来了***********"+rob_classList.getRob_classList().size());
		System.out.println(rob_classList.getRob_classList().get(2).getSumScore());
		ExecResult er=new ExecResult();
		er.setMsg("恭喜您,成功取消预约");
		er.setSuccess(true);
		return er;
	}

其中@Param(“rob_classList”)要与前台数组对应
3.把你想要的传到后台的对象封装成数组
原对象:

public class Rob_class {
	private int reserve_id;
	private Date create_time;
	private int rob_id;
	private int user_id;
	private int  sumScore;
	public int getSumScore() {
		return sumScore;
	}
	public void setSumScore(int sumScore) {
		this.sumScore = sumScore;
	}
	public int getUser_id() {
		return user_id;
	}
	public void setUser_id(int user_id) {
		this.user_id = user_id;
	}
	private int person_number;
	public int getPerson_number() {
		return person_number;
	}
	public void setPerson_number(int person_number) {
		this.person_number = person_number;
	}
	
	public int getReserve_id() {
		return reserve_id;
	}
	public void setReserve_id(int reserve_id) {
		this.reserve_id = reserve_id;
	}
	public Date getCreate_time() {
		return create_time;
	}
	public void setCreate_time(Date create_time) {
		this.create_time = create_time;
	}
	public int getRob_id() {
		return rob_id;
	}
	public void setRob_id(int rob_id) {
		this.rob_id = rob_id;
	}
}

封装后的数组:

public class Rob_classList {
	private List<Rob_class> rob_classList;

	public List<Rob_class> getRob_classList() {
		return rob_classList;
	}

	public void setRob_classList(List<Rob_class> rob_classList) {
		this.rob_classList = rob_classList;
	}
}

第二种:表单提交,以字段数组接收
1.前端页面

<h1>submitUserList_1</h1>
<form action="${pageContext.request.contextPath }/customer/saveCustomer" method="post">
用户名称:<input type="text" name="custName"/><br><br>
年龄:<input type="text" name="custAge"/><br><br>
用户名称:<input type="text" name="custName"/><br><br>
年龄:<input type="text" name="custAge"/><br><br>
<input type="submit" value="保存"><br><br>
</form>

2.controller方法:

@RequestMapping(value="/customer/saveCustomer",method=RequestMethod.POST)
public String saveCustomer(@Param("custName") String[] custName,@Param("custAge") Integer[] custAge) throws Exception{
for (int i = 0; i < custAge.length; i++) {
System.out.println(custAge[i]);
}
for (int i = 0; i < custName.length; i++) {
System.out.println(custName[i]);
}
return "redirect:/customer/listCustomer";
}
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值