我有一个jsp页面,它超链接到另一个jsp页面。如果我们点击下面显示的图像中的“更新首选项”,则会打开第二张图像:
下面是第二张图片中显示的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}}仅限于选中。怎么办?
答案 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