我在 JSP 文件中有以下代码:
rs=stmt.executeQuery("select * from routemaster");
if(rs!=null){
%>
<table class="notebook" align="center">
<tr class=row_title>
<th class=row_title>RouteID</th>
<th class=row_title>RouteCode</th>
<th class=row_title>BusNo</th>
<th class=row_title>InBoundTime</th>
<th class=row_title>OutBoundtime</th>
<th class=row_title>Location</th></tr>
<%
while(rs.next()){
RouteID=rs.getString(1);
RouteCode=rs.getString(2);
InBoundtime=rs.getString(4);
OutBoundtime=rs.getString(5);
BusNo=rs.getString(6);
Location=rs.getString(7);
DisRow++;
%><tr class= <%=(DisRow%2!=0)? "row_even" : "row_odd"%>>
<td><%=RouteID%></td>
<td><a onclick="sendInfo('<%=RouteCode%>') " ><%=RouteCode%></a></td>
<td><%=BusNo%></td>
<td><%=InBoundtime%></td>
<td><%=OutBoundtime%></td>
<td><%=Location%></td>
</tr><%
}
%></table><%
}
以及以下 JS 代码:
sendInfo(txt){
var txt = window.opener.document.addbus0.RouteCode;
txt.value = txtVal;
window.close();
}
每当链接为 RouteCode
单击后,需要关闭窗口并选择 RouteCode
需要保存在session中。我怎样才能实现这个目标?
最佳答案
到目前为止,您需要将值从客户端发送到服务器。实现此目的的正常方法是让客户端单击链接或将表单提交到服务器端的 URL,并将值作为 URL 中的请求参数或作为表单中的隐藏输入发送。
由于您使用的是链接,因此这里有一个带有链接的示例:
<a href="sendInfo.jsp?routeCode=<%=routeCode%>"><%=routeCode%></a>
然后在 sendInfo.jsp
中执行
<%
String routeCode = request.getParameter("routeCode");
session.setAttribute("routeCode", routeCode);
%>
<script>
window.opener.document.addbus0.RouteCode.value = '<%=routeCode%>';
window.close();
</script>
<小时/>
与具体问题无关,这种代码风格不是最佳实践。 Java 代码属于 Java 类,而不是 JSP 文件。 JSP 文件应该只包含 HTML、JSP 标签和 EL。另请参阅How to avoid Java code in JSP files?另外,Java coding conventions强制变量名应以小写字母开头。仔细阅读它们。你还有很长的路要走,祝你好运。
关于javascript - html 中的 <a> 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6074067/