0

我正在使用 JSP 和 Servlet 开发一个 Web 应用程序。在该应用程序中,我必须在 html 表中显示来自数据库表 stud(studID, name, add) 的数据,并且表中的每一行在最后一列都有一个与之关联的超链接。单击该超链接后,我想从表中获取(studID)...

到目前为止,我已经从数据库中获取数据,然后将其放入列中,然后为每一行添加超链接。但我无法从与超链接关联的 html 表中获取(studID)。

提前致谢....

源代码 :

<% 
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>
4

3 回答 3

2

您可以在 url 中将 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 添加到您发布的代码中的 URL,您可以:

  <a href="PlanProtocol?id=<%=i%>" >Edit</a>

网址最终会像这样:PlanProtocol?id=1234.

在 Servlet 中,您可以通过以下方式获取参数:

   request.getParameter("i");

但是,正如我上面提到的,您可能希望使用 JSTL 之类的标记库,而不是将这些 scriptlet 放置在您的页面中。有几个优点。

于 2012-12-18T11:52:12.607 回答
1

认为您应该在JSP中提取studID并将studID格式化为URL,html页面的查询字符串。(?studID=xxxxx) 所以 servlet 会知道 studID。

于 2012-12-18T11:50:27.350 回答
0

您可以request.setAttribute("studID","value");在您的 jsp 页面中使用来设置值并request.getAttribute("studID");在 servlet 中使用来获取值

于 2012-12-18T11:58:59.003 回答