我有一个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 =&lt;%= link%&gt; ?
答案 0 :(得分:1)
<%@ 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>
并在您的控制器中捕获参数
doGet(HttpServletRequest request,HttpServletResponse response){
String theLink="";
if(request.getParameter("link")!=null){
theLink= request.getParameter("link");
request.getSession(true).setAttribute("clickedLink",theLink);
}
}
答案 1 :(得分:0)
正确的代码方式是
<tr>
<td>
<a href="MarkDistribution1.jsp?course_id_QSparam="+<%=course_id%>'></a>
</td>
</tr>
您所犯的错误是在<td>
标记之前关闭了<a>
。您可以像这样添加其余参数。
答案 2 :(得分:0)
这很奇怪。我通过改变这样的代码解决了这个问题,
<%
String link;
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];
link = "<tr><td> <a
href=\"MarkDistribution1.jsp?course_id_QSParam="+course_id+"\">"+course_id+":
"+course_name+"</td></a></tr>";
%>
table = '<%=link%>'
document.write(table);
<%
}
%>
使用单引号在java脚本变量表中分配java变量链接。无论如何,谢谢你们。