在讨论问题之前,请先查看以下代码段:
Homepage1.jsp包含按钮和脚本:
<div>
<button id="admin" style="float: left;" onclick="getUserID(this.id)"><b>Admin</b></button>
<button id = "chef" style="float: left;" onclick="getUserID(this.id)"><b>Chef</b></button>
<button id = "user" style="float: left;" onclick="getUserID(this.id)"><b>User</b></button>
<script type="text/javascript">
function getUserID(clicked_id) {
if (clicked_id == "admin") {
<%session.setAttribute("userID", "admin");%>
}
else if (clicked_id == "chef") {
<%session.setAttribute("userID", "chef");%>
}
else if (clicked_id == "user") {
<%session.setAttribute("userID", "user");%>
}
window.location = "/Homepage2.jsp";
}
Homepage2.jsp包含:
<%Object userName = session.getAttribute("userID");%>
我的问题是,无论我点击(管理员,厨师或用户)的三个按钮中的哪一个,下一个jsp文件(Homepage2.jsp)总是获取与“用户”相关的信息。
调试此代码后我注意到,每个if语句都在函数getUserID(clicked_id)中进行计算,以便最后一个if语句覆盖以前的语句。