我正在使用JSP和Servlets开发Web应用程序。 在该应用程序中,我必须在html表中显示来自数据库表stud(studID,name,add)的数据,并且表中的每一行都将在最后一列中具有与之关联的超链接。点击该超链接后,我想从表格中获取(studID)...
到目前为止,我已经从数据库中获取数据,然后将其放入列中,然后为每行添加超链接..但是我无法从与超链接相关联的html表中获取(studID).. < / p>
提前致谢....
源代码:
<%
String[][] data = (String[][])request.getAttribute("data");
String[] cNames = (String[])request.getAttribute("columnNames");
//headings
%>
<table>
<tr>
<%
for(int i=0;i<cNames.length;i++) {
%>
<th>
<%= cNames[i] %>
</th>
<%
}
//data if(data!=null)
for(int i=0;i<data.length;i++) {
%>
<tr>
<%
for(int a=0;a<3;a++) {
%>
<td>
<%=
data[i][a]
%>
</td>
<%
//hyperlink
if(a==2) {
%>
<td>
<a href="PlanProtocol" id=<%=i%> onclick="<% session.setAttribute("ID","p2"); %>" >Edit</a></td>
<%
}
}
%>
</tr>
<% } %>
<tr>
</table>
答案 0 :(得分:2)
您可以将ID作为查询字符串传递到网址中。简单地:
<a href="myservlet?id=<%=stuid%>">My Link</a>
会工作吗?但是,如果您使用的是JSTL或其他标记库,那么您可以执行以下操作:
<c:url value="/myservlet" var="myURL">
<c:param name="id" value="1234"/>
</c:url>
<a href="<c:out value="myURL">mylink</a>
这有诸如url编码等优点。
因此,要在发布的代码中将ID添加到网址,您可以:
<a href="PlanProtocol?id=<%=i%>" >Edit</a>
网址最终会像这样:PlanProtocol?id=1234
。
在Servlet中,您可以通过以下方式获取参数:
request.getParameter("i");
但是,正如我上面提到的,您可能希望使用类似JSTL的标记库,而不是将这些scriptlet放在页面中。有几个优点。
答案 1 :(得分:1)
认为你应该在JSP中提取studID并将studID格式化为URL,html页面的查询字符串。 (?studID = xxxxx)因此servlet将知道studID。
答案 2 :(得分:0)
您可以在jsp页面中使用request.setAttribute("studID","value");
来设置值,并在servlet中使用request.getAttribute("studID");
来获取值