最近一直在看这个SSM_demo
小结下几种传值情况
第一种:
<c:forEach items="${pageInfo.list}" var="user">
<tr>
<td>${user.id}</td>
<td>${user.username }</td>
<td>${user.age }</td>
<!-- <td><a class="edit">编辑</a> <a
class="delete">删除</a></td> -->
<td>
<a type="button" href="${path}/user/getUser?id=${user.id}" class="btn btn-info btn-sm">
<span class="glyphicon glyphicon-pencil" aria-hidden="true"></span>
编辑</a>
<a type="button" href="${path}/user/delUser?id=${user.id}" class="btn btn-danger btn-sm">
<span class="glyphicon glyphicon-trash" aria-hidden="true" ></span>
删除</a>
</td>
</tr>
</c:forEach>
这里,href="${path}/user/getUser?id=${user.id} 默认的是发送get请求
后台的接值方法:首先/user/getUser 这个到对应的controller里的@RequestMapping("/Book") @RequestMapping("/getUser")
匹配到对应的方法,
@RequestMapping("/getUser")
public String getUser(int id,Model model){
model.addAttribute("user", userService.findUserById(id));
return "editUser";
}
然后这个地方的参数,直接与页面上href的传参一直,就可以取到了。
注意http请求只能发送字符串形式user/getUser?id=${user.id}&&${XXXX}。。。。。。
不可以传复杂的数据,不能传对象。
第二种:
Form表单形式
<form action="" name="userForm">
<input type="hidden" name="book_id" value="${book.book_id}" />
<h3>书名:<input type="text" name="book_name" value="${book.book_name}"></h3>
<h3> 价格:<input type="text" name="book_price"value="${book.book_price}"/></h3>
<h1><input type="button" value="编辑" class="btn btn-info btn-sm" onclick="editBook()"></h1>
</form>
<script type="text/javascript">
function editBook() {
var form = document.forms[0];
form.action = "<%=basePath %>Book/editBook";
form.method = "post";
form.submit();
}
</script>
我们看这里, form.action = "<%=basePath %>Book/editBook" 同样的到controller里找对应的方法
@RequestMapping("editBook")
public String editBook(Model model,Book book){
if(book !=null){
bookservice.editBook(book);
}
return "redirect:/Book/bookInfo";
}
注意参数,直接 Book book 传过来时已经自动把 以下三个参数封装成 book对象了
<input type="hidden" name="book_id" value="${book.book_id}" />
<h3>书名:<input type="text" name="book_name" value="${book.book_name}"></h3>
<h3> 价格:<input type="text" name="book_price"value="${book.book_price}"/></h3>
在controller里Book book 直接拿到已经实体化的对象
就说这两种方法吧,以后再续。