之前我們已經講過controller向jsp頁面的傳值,接下來我們講解jsp頁面提交向controller傳值。
例:在頁面內,點擊修改信息按鈕,向controller傳遞選中的數據的num值,通過num值查詢該數據的信息後返回至修改頁面。
思路:
1、數據顯示頁面點擊按鈕後,向jsp頁面傳遞值
2、Controller接收傳來的num值,進行數據的查詢。
該問銜接上一篇博客:點擊查看
開發jsp頁面:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<!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">
<title>數據查詢列表</title>
</head>
<body>
<form action="${pageContext.request.contextPath }/data/dataAll.action" method="post">
數據查詢:
<table width="10%" border=1>
<tr>
<td><input type="text" name="num" placeholder="編號"/><br/></td>
<td><input type="submit" value="查詢"/></td>
</tr>
</table>
數據列表:
<table width="100%" border=1>
<tr>
<td>編號</td>
<td>溼度</td>
<td>溫度</td>
<td>二氧化碳</td>
<td>粉塵</td>
<td>操作</td>
</tr>
<c:forEach items="${datasList }" var="data">
<tr>
<td>${data.num }</td>
<td>${data.hum }</td>
<td>${data.tem }</td>
<td>${data.co }</td>
<td>${data.fc }</td>
<td><a href="${pageContext.request.contextPath }/data/editDatas.action?num=${data.num}">修改</a></td>
</tr>
</c:forEach>
</table>
</form>
</body>
</html>
如代碼:
<td><a href="${pageContext.request.contextPath }/data/editDatas.action?num=${data.num}">修改</a></td>
如上代碼將值傳遞給了前端的Controller。
接下來開發Controller接收值並做相應的操作:
//修改數據信息(點擊按鈕跳轉到修改界面-request將num傳過去,通過num查詢數據信息,顯示在修改框)
//通過@RequestParam接收request傳遞過來的參數
@RequestMapping(value="/editDatas",method={RequestMethod.POST,RequestMethod.GET})
public String editDatas(Model model,@RequestParam(value="num",required=true)Integer num)throws Exception{
//根據num查詢數據信息
DataCustom dataCustom = (DataCustom) dataService.findDataByNum(num);
//通過形參中的model將數據傳送到頁面
model.addAttribute("dataCustom", dataCustom);
return "/data/editDatas";
}
如代碼:
@RequestParam(value="num",required=true)Integer num
該語句則將傳遞過來的值作爲了Controller方法的參數值,在方法體內部即可通過該參數做相應的操作。