spring 页面跳转不到对应的Controller方法

错误:如标题

问题描述:

<div class="control-group">
				<label for="resOpsList" class="control-label">对资源的操作:</label>
				<div class="controls">
					<c:forEach items="${resOpMap}" var="map">
						<c:out value="${map.key}" />
						<br>
						<c:forEach items="${map.value}" var="resOp">
							<input type="checkbox" name="resOps" value="${resOp.id}" <c:if test="${resOp.isSelect==1}">checked="true"</c:if>/>
							<c:out value="${resOp.op.name}" />
						</c:forEach>
						<br>
						<br>
					</c:forEach>
				</div>
			</div>

点击提交时无法跳转到下面的Controller方法:

/**
	 * 给角色分配资源操作
	 * 
	 * @return
	 */
	@RequestMapping(value = "addResAndOp", method = RequestMethod.POST)
	public String addResAndOp(@Valid @ModelAttribute("role") Role role,/**
	 * 给角色分配资源操作
		 * @return
	 */
	@RequestMapping(value = "addResAndOp", method = RequestMethod.POST)
	public String addResAndOp(@Valid @ModelAttribute("role") Role role,@RequestParam(value = "resOps") List<Long> selectIds,RedirectAttributes redirectAttributes) {
		role.getResOpList().clear();
		for (Long id : selectIds) {
			role.getResOpList().add(new ResourceOp(id));
		}
		roleService.addRole(role);
		return "redirect:/admin/role";
	} List<Long> selectIds,RedirectAttributes redirectAttributes) {
		role.getResOpList().clear();
		for (Long id : selectIds) {
			role.getResOpList().add(new ResourceOp(id));
		}
		roleService.addRole(role);
		return "redirect:/admin/role";
	}

原因:jsp中checkBox属性name的值原本为resOPList,下面方法的

@RequestParam(value = "resOps")的resOp原本为resOpList,

错误信息是:Field error in object 'role' on field 'resOpList': rejected value [8,9,10]; codes [typeMismatch.role.resOpList,typeMismatch.resOpList,typeMismatch.java.util.List,typeMismatch]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [role.resOpList,resOpList]; arguments []; default message [resOpList]]; defaul........

解决方法是把resOpList改为一个另外的名称。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值