首页 > 解决方案 > 从某个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>

标签: javascriptjsp

解决方案


而不是这个

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

推荐阅读