通常情况下前端获取页面的值需要使用document.getElementById(“startTime”).value之类,而如果使用了遍历的话,就难以使用类似的方法,下面是我自己想出来的一种方法,可能在开销上相对而言大了点。
在此演示/标签的情况及想后端的传参,其它的方式相对简单且类似。
前端页面
思路,通过点击<a>标签将页面内容存入session,再进行页面跳转,因为在onclick后,<a>标签功能依然会实现。
<table>
<tr>
<th>会议室号</th>
<th>会议室状态</th>
</tr>
<!-- wantList 是后端存入model的List -->
<tr th:each="want:${wantList}">
<td><a th:href="@{/using/reverseRoom}" th:text="${want.number}" onclick="getChoose(this)"></a></td>
<td th:text="${want.status}"></td>
</tr>
</table>
js
function getChoose(use) {
var roomNum = use.text;
fetch('/meetingroom/using/reverseRoomNum'+'?roomNum=' + roomNum).then();
}
后端 @Controller 页面
相当于进行了两次地址传递,第一次仅用于添加session,第二次进行页面跳转,取用session。
@RequestMapping(value = "/using/reverseRoomNum")
public String reverseRoomNum(
@RequestParam(value = "roomNum") String roomNum, HttpSession session){
session.setAttribute("roomNum", roomNum);
return "using/reverseRoom";
}
@RequestMapping(value = "/using/reverseRoom")
public String reverseRoom(){
return "using/reverseRoom";
}
补充最近找到了新方法,才发现之前的方法有点蠢,算是自己的一个知识漏洞,
直接分享一下代码,比前面的好多了,这就不用执行两次页面跳转了
function getChoose(use) {
var roomNum = use.text;
window.location.href='/meetingroom/using/reverseRoomNum'+'?roomNum=' + roomNum;
}
<table>
<tr>
<th>会议室号</th>
<th>会议室状态</th>
</tr>
<!-- wantList 是后端存入model的List -->
<tr th:each="want:${wantList}">
<td><span th:href="@{/using/reverseRoom}" th:text="${want.number}" onclick="getChoose(this)"></span></td>
<td th:text="${want.status}"></td>
</tr>
</table>