javascript - 从某个jsp页面获取req.getParameter("concurid")值到内联java代码到另一个jsp页面,然后通过按钮将其传递给servlet
问题描述
我在 jsp 页面中创建了一个 travelrecords 表,现在我想要一个编辑选项来编辑 travelstartdate 和 travelenddate,如 capture1所示。
当我单击编辑选项时,会弹出一个表单:ed 仅允许用户编辑 travelstartdate 和 travelenddate 然后应用新值,如capture2 所示。
弹出表单得到尊重 concurid 但是当我单击应用按钮时,更改不会保存在数据库中,因为按钮没有得到尊重 concurid 值,因此不会进一步传递给其 servlet 以进行数据库更新。
弹出表单是我使用内联 java 代码从其他一些 jsp 页面(它是 cid 并且它正在工作)获取 concurid 值的 jsp 页面。
但是我不能在按钮 onclick 函数中使用这个 cid 变量或直接 request.getParameter("concurid") ,因为这个 cid 值已在脚本 <% %> 标签中调用。
在 servlet 页面中,我使用 String CONCURID=request.getParameter("cocurid"); 获得了 concurid 值
如何将这个值传递到脚本标签之外,即在按钮中,以便可以将它发送到某个 servlet 页面以在数据库中更新?
(POPUP.jsp)
<html>
<%@ page import = "java.io.*,
javax.servlet.*,java.sql.*,java.util.*,java.time.LocalDate" %>
<body>
<%@ page import="java.sql.*" %>
<%@ page import="java.io.*" %>
<%@ page import="java.util.*"%>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<form action="ServletEdit">
<table style="float:left;color:white; font-family:
Arial, Helvetica, sans-serif; font-size:11.6px;font-weight:bold;"
border="4" cellpadding="4" cellspacing="4">
<tr bgcolor="#928E8E" style="border:1pt solid
black">
<tr>
<td>FULLNAME</td>
</tr>
<tr>
<td>FUNCTION</td>
</tr>
<tr>
<td>MANAGER</td>
</tr>
<tr>
<td>PURPOSE</td>
</tr>
<tr>
<td>PNAME</td>
</tr>
<tr>
<td>MEETING</td>
</tr>
<tr>
<td style="height: 29px;">REQDATE</td>
</tr>
<tr>
<td style="height: 34px;">STARTDATE</td>
</tr>
<tr>
<td style="height: 34px;">ENDDATE</td>
</tr>
<tr>
<td style="height: 31px;">NUMDAYS</td>
</tr>
<tr>
<td>SOURCE</td>
</tr>
<tr>
<td>DEST</td>
</tr>
<tr>
<td>CDATE</td>
</tr>
<tr>
<td>CID</td>
</tr>
<tr>
<td>REMARKS</td>
</tr>
</tr>
</table>
<%
try
{ Connectioncon=DriverManager.getConnection
("jdbc:oracle:thin:@localhost:1521:xe","system","up78cp5317");
String pd=request.getParameter("REQUESTDATE");
String cid=request.getParameter("concurid");
String query="select * from APPROVAL Where
CONCURID='"+cid+"'";
Statement stmt=con.createStatement();
ResultSet rs=stmt.executeQuery(query);
while(rs.next())
{
%>
<table style="float:left;color:white;
font-family: Arial, Helvetica,
sans-serif; font-size:11.6px;font-weight:bold;" border="4"
cellpadding="4" cellspacing="4" >
<tr>
<tr>
<td><%=rs.getString("FULLNAME")%></td>
</tr>
<tr>
<td><%=rs.getString("FUNCTION")%></td>
</tr>
<tr>
<td><%=rs.getString("RESOURCEMANAGER")%></td>
</tr>
<tr>
<td><%=rs.getString("PURPOSEOFTRAVEL")%></td>
</tr>
<tr>
<td><%=rs.getString("PROJECTNAME")%></td>
</tr>
<tr>
<td><%=rs.getString("MEETINGDETAILS")%></td>
</tr>
<tr>
<td><textarea rows="1" cols="30"
name="RequestDate" type="date" readonly maxlength="100"
class="textbox" style="width: 150px;" id="pick_date"
onchange="cal()"><%=rs.getString("REQUESTDATE")%>
</textarea></td>
<script type="text/javascript">
function GetDays()
{
var dropdt = new
Date(document.getElementById("drop_date").value);
var pickdt = new
Date(document.getElementById("pick_date").value);
return parseInt((dropdt - pickdt) / (24 * 3600 *
1000));
}
function cal()
{
if(document.getElementById("drop_date"))
{
document.getElementById("numdays3").value=GetDays();
}
}
</script>
<tr>
<td><input name="TravelStartDate" type="date"
maxlength="100" class="textbox" style="width: 150px"
id="drop_date" onchange="cal()"/></td>
</tr>
<tr>
<td><input name="TravelEndDate" type="date" maxlength="100"
style="width: 150px"/></td>
</tr>
<tr>
<td><input name="numdays" type="text" maxlength="100"
readonly class="textbox" style="width: 150px" id="numdays3"
/></td>
</tr>
<tr>
<td><%=rs.getString("TRAVELSOURCE") %></td>
</tr>
<tr>
<td><%=rs.getString("TRAVELDESTINATION") %></td>
</tr>
<tr>
<td><%=rs.getString("CONCURDATE") %></td>
</tr>
<tr>
<td><%=rs.getString("CONCURID") %></td>
</tr>
<tr>
<td><%=rs.getString("ANYREMARKS") %></td>
</tr>
</tr>
</table>
<button type="submit" name="sign" value="SIGNIN"
onclick="location.href='ServletEdit?CONCURID=
<%=request.getParameter("concurid")%>'" style="width:70px;
height:30px;
margin-right:20%;
border:none;
border-radius:2px;
font-size:13px;
font-weight:bold;">Apply</button>
<%
}
%>
<%
}
catch(Exception e)
{
e.printStackTrace();
}
%>
</article>
</section>
</form>
</body>
解决方案
而不是这个
<button type="submit" name="sign" value="SIGNIN"
onclick="location.href='ServletEdit?CONCURID=
<%=request.getParameter("concurid")%>'">Apply</button>
您可以创建一个输入字段并将其隐藏,也可以将其放在您的表单标签中
<input type="text" name="concurid" value="<%=request.getParameter("concurid")%>" hidden>
request.getParameter("concurid")
并在您的servlet
.Also中使用直接调用此按钮。
<button type="submit" name="sign" value="SIGNIN" >Apply</button>
推荐阅读
- css - 如何删除文本输入css上的蓝色背景
- php - Unicode 代码点转义语法
- html - 如何水平堆叠div?
- python - 无法在 Catalina、Macbook Pro (2017) 上下载 Python 3.7、64 位图形
- gradle - Gradle 多项目并行构建消耗 100% 的 CPU 时间
- javascript - 如何根据jQuery中另一个字段中的日期获取星期几
- android - 移除 onActivityResult 中的当前片段
- sql-server - 按日期排序很慢
- r - R:通过每次加1来完成下面的单元格
- python - PyQt5 tableView 显示底片为红色和 (x.xx)