如何在jsp中显示以前选择的值

时间:2016-10-06 16:10:38

标签: javascript html jsp

我有一个jsp页面,它超链接到另一个jsp页面。如果我们点击下面显示的图像中的“更新首选项”,则会打开第二张图像:

image1

2nd image

下面是第二张图片中显示的jsp的代码:

 <body>
  <center>      
             <div style="font-style:bold;font-size:30;color:black"> Data Platform - Monitor </div>
  </center>
   <BR><BR> 
      <%! 
                 VoltDAOImpl voltDao = new VoltDAOImpl();

      %>




       <form action="dp_monitor.jsp" method="get"  >



       <table width="350" border="0">

           <tr valign="Left">
             <td><b>Client Acronym:   </b> </td><td>      <b> <input type="text" name="client_acronym" value="PEAKM"></b></td>
           </tr>

           <tr valign="Left">
             <td><b>Sort By :</b></td>
             <td>
             <select name="sort_by">
            <option selected="true" value="notional">notional</option>
        <option value="arr_mid_slp">arr mid slippage</option>
        <option  value="order_qty">order qty</option>
        <option value="liq_consmption">liq consmption</option>
        <option value="arr_last_slp">arr last slippage</option>
        <option value="ivwap_slp">ivwap slppage</option>
        <option value="exec_qty">exec qty</option>
        <option value="leaves_qty">leaves qty</option>
        <option value="limit_px">limit px</option>
        <option value="avg_px">avg px</option>
        <option value="last_px">last px</option>
        <option value="last_qty">last qty</option>
        <option value="transact_time">transact time</option>
        <option value="arr_mid_px">arr mid px</option>
        <option value="ivwap_volume">ivwap volume</option>
        <option value="ivap_px">ivap px</option>
        <option value="arr_last_px">arr last px</option>
        <option value="end_last_px">end last px</option>
        </select>

             </td>
           </tr>


           <tr valign="Left">
             <td><b>Algo: </b>    </td>
             <td>
             <select name="algo">
           <option selected="true" value="">ALL</option>

               <%
               try{

                  List<String> algo_list=    voltDao.getDistinctAlgos("PEAKM",voltDao.client);
              for(String algo : algo_list )
              {
                out.println("<option value=\""+algo+"\">"+algo+"</option>");
              }


            } catch(Exception e){System.out.println( " error in getting algos"   ); }  
           %>

        </select>
           </tr>

           <tr valign="Left">
             <td><b>ListId: </b>   </td>
             <td><select name="listid">
           <option selected="true" value="">ALL</option>

               <%

               try {
                  List<String> list_id__list=    voltDao.getDistinctListID("PEAKM",voltDao.client);
              for(String list_id : list_id__list )
              {
                out.println("<option value=\""+list_id+"\">"+list_id+"</option>");
              }

              } catch(Exception e){System.out.println( " error in getting listids"   ); }  
           %>
        </select>
        </td>
           </tr>

           <tr valign="Left">
             <td><b>Refresh : </b>   </td>
             <td>
             <select name="refresh">
             <option  value="1">1 sec</option>
           <option  value="3">3 secs</option>
           <option  value="5">5 secs</option>
           <option value="10">10 secs</option>
           <option  value="15">15 secs</option>
           <option  value="30">30 secs</option>
           <option  value="45">45 secs</option>
           <option  value="60">1 min</option>
           <option  value="120">2 min</option>
           <option  value="180">3 min</option>
           <option  value="240">4 min</option>
           <option  value="300" selected>5 min</option>
         </select>
         </td>  </tr>
             <tr><td></td>  </tr>
             <tr><td></td>  </tr>
             <tr><td></td>  </tr>
              <tr>  <td><button type="submit">Update</button></td>
                 <td><button type="reset">Clear</button></td>
          </tr>
        </table>




         </form>






  </body>

因此,每当我从下拉列表中选择偏好设置(比如"Refresh)时,我选择5 secs,然后点击Update,这样它就会回到第一个jsp(上面显示的第一张图片。现在,当我再次点击“Update Preferences”时,它会显示默认选定的5 mins而不是5 secs。如何获取之前选择的偏好设置每次点击Update Preferences时显示?

更新: 我把它添加到我的第二个jsp:

<%
    String refreshValue = request.getParameter("refresh");

    if(refreshValue==null){
        refreshValue = "60";
    }

%>

             <td><b>Refresh : </b>   </td>
             <td>
             <select name="refresh">
<option value="1" <% if(refreshValue.equals("1")) { %> selected <% } %>>1 sec</option>
<option value="3" <% if(refreshValue.equals("3")) { %> selected <% } %>>3 secs</option>
<option value="5" <% if(refreshValue.equals("5")) { %> selected <% } %>>5 secs</option>
<option value="10" <% if(refreshValue.equals("10")) { %> selected <% } %>>10 secs</option>
<option value="15" <% if(refreshValue.equals("15")) { %> selected <% } %>>15 secs</option>
<option value="30" <% if(refreshValue.equals("30")) { %> selected <% } %>>30 secs</option>
<option value="45" <% if(refreshValue.equals("45")) { %> selected <% } %>>45 secs</option>
<option value="60" <% if(refreshValue.equals("60")) { %> selected <% } %>>1 min</option>
<option value="120" <% if(refreshValue.equals("120")) { %> selected <% } %>>2 min</option>
<option value="180" <% if(refreshValue.equals("180")) { %> selected <% } %>>3 min</option>
<option value="240" <% if(refreshValue.equals("240")) { %> selected <% } %>>4 min</option>
<option value="300" <% if(refreshValue.equals("300")) { %> selected <% } %>>5 min</option>
</select>

这是我的第一个jsp(dp_monitor):

<input type="hidden" name="refresh" value="<%=request.getParameter("refresh")%>">
<%String refresh = request.getParameter("refresh");
 if( ("".equals(refresh)||refresh==null )   )
        refresh="4000";



  // Set refresh, autoload time  
  response.setIntHeader("Refresh", Integer.parseInt(refresh));
  // Get current time
  Calendar calendar = new GregorianCalendar();
  String am_pm;
  int hour = calendar.get(Calendar.HOUR);
  int minute = calendar.get(Calendar.MINUTE);
  int second = calendar.get(Calendar.SECOND);
  if(calendar.get(Calendar.AM_PM) == 0)
     am_pm = "AM";
  else
     am_pm = "PM";

  if(hour == 0)
   hour = 12;

  String CT = hour+":"+ minute +":"+ second +" "+ am_pm;
  out.println("Last Refresh Time: " + CT + "\n");%>

但是,无论何时我从“更新偏好设置”中选择一些值,然后点击“更新”,然后返回,它仅将refreshValue作为null,因此显示{{ 1}}仅限于选中。怎么办?

1 个答案:

答案 0 :(得分:0)

我相信dp_monitor.jsp是你的第一个jsp。

您需要在jsps之间读取,保留和传输数据。

要阅读您使用request.getParameter("refresh")

的数据

要保留数据,您可以在dp_monitor.jsp页面的表单元素中使用隐藏元素

<input type="hidden" name="refresh" value="<%=request.getParameter("refresh")%>">

对于传输数据表单提交将会做到这一点。

在第二个jsp中,您首先要检查refresh参数,如果该值不可用,则您必须指定默认值

<%
    String refreshValue = request.getParameter("refresh");

    if(refreshValue==null){
        refreshValue = "300;
    }

%>

然后使用refreshValue,您可以选择所需的选项元素。

另一种方法是将值存储在session中,但我认为第一种方法更适合您的要求

您可以使用以下代码段来select值。有多种方法可供选择,其中之一是

<select name="refresh">
<option value="1" <% if(refreshValue.equals("1")) { %> selected <% } %>>1 sec</option>
<option value="3" <% if(refreshValue.equals("3")) { %> selected <% } %>>3 secs</option>
<option value="5" <% if(refreshValue.equals("5")) { %> selected <% } %>>5 secs</option>
<option value="10" <% if(refreshValue.equals("10")) { %> selected <% } %>>10 secs</option>
<option value="15" <% if(refreshValue.equals("15")) { %> selected <% } %>>15 secs</option>
<option value="30" <% if(refreshValue.equals("30")) { %> selected <% } %>>30 secs</option>
<option value="45" <% if(refreshValue.equals("45")) { %> selected <% } %>>45 secs</option>
<option value="60" <% if(refreshValue.equals("60")) { %> selected <% } %>>1 min</option>
<option value="120" <% if(refreshValue.equals("120")) { %> selected <% } %>>2 min</option>
<option value="180" <% if(refreshValue.equals("180")) { %> selected <% } %>>3 min</option>
<option value="240" <% if(refreshValue.equals("240")) { %> selected <% } %>>4 min</option>
<option value="300" <% if(refreshValue.equals("300")) { %> selected <% } %>>5 min</option>
</select>

另一种方法是使用jstl设置选项,您可以参考此link