我有一个 jsp 页面,其中在循环内创建了多个链接。所有链接都准确地指向另一个 jsp 页面。在第二个jsp页面中,我需要找出在第一个jsp页面中单击了哪个链接。我怎样才能做到这一点 ?单击第一个jsp页面中的链接后,有什么方法可以立即设置一个属性,以便在第二个页面中我可以获取该属性来确定单击了哪个链接?
这是我的循环代码,其中包含链接 -- http://pastebin.com/J3JGu5jD
<%
System.out.println("Going inside loop");
for(int i = 0; i < n_row ; i++)
{
course_name = dbManager.get_course_name(teachers_course_id_list[i]);
course_id = teachers_course_id_list[i];
%>
table = '<tr><td> <a href="MarkDistribution1.jsp?course_id_QSparam
='+"<%=course_id%>"+'">'+ "<%=course_id%>" + ': ' + "<%=course_name%>"+'</td>
</a></tr>'
document.write(table);
<%
}
%>
PS:还有一个问题。我有一个字符串变量链接。这是将其分配给 javascript 变量的正确方法 --- javascript_variable = <%=link%> 吗?
最佳答案
请不要使用 scriptlet。你可以使用 JSTL foreach 标签
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
然后在jsp中使用循环,您可以使用GET方法来知道点击了哪个链接
<c:foreach items="${yourarray}" var="link">
<a href="myController?link=1"><c:out value="${link}"/></a>
</c:foreach>
并在你的 Controller 中捕获参数
doGet(HttpServletRequest request,HttpServletResponse response){
String theLink="";
if(request.getParameter("link")!=null){
theLink= request.getParameter("link");
request.getSession(true).setAttribute("clickedLink",theLink);
}
}
关于javascript - 单击链接后如何设置 session 属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25077170/