一尘不染

刷新JSP页面后,将所选值保留在HTML select元素中

jsp

我有一个带下拉框的JSP。我选择一个选项并提交。现在,我得到了存储在该选定选项数据库中的信息。现在,我通过在servlet中设置为自动刷新JSP(HTML页面)

//servlet code inside doGet() method
HttpSession session=request.getSession();
String selUrl=request.getParameter("urlsel");    
String opt=session.setAttribute("selectedUrl",selUrl);
String selopt=session.getAttribute("selectedUrl");
response.setHeader("Refresh","10;url="/SiteAvailabilityServlet?ursel="+selectedUrl);
//and forwarding request to result.jsp using RequestDispatcher..

//input.jsp代码

<select name="urlsel">
<option value="abc">abc</option>
<option value="def">def</option>
</select>

当我第一次选择选项说 abc 并手动提交时,它给了我正确的结果并显示了数据库中的详细信息。10秒后,将使用相同的选项 abc
(我不想更改该选项)自动刷新,但不显示值。它正在

  request.getParameter("urlsel")    as null  after refreshing automatically.

请帮我。在 result.jsp 我正在使用

 <form method="get" action="/SiteAvaialabilityServlet">

阅读 461

收藏
2020-06-08

共1个答案

一尘不染

我认为,如果您替换以下行,您的代码应该可以运行:

response.setHeader("Refresh","10;url="/SiteAvailabilityServlet?ursel="+selectedUrl);

有了这个 :

response.setHeader("Refresh","10;url=/SiteAvailabilityServlet?urlsel="+ selopt);

改变的是:

  • An "已从标头中的URL删除,我不知道为什么应该在其中;
  • urlsel不是ursel;
  • 为什么selectedUrl呢 它是会话属性的名称,您想要的是会话属性的值。由于您具有(selopt),因此您可能只想使用它。

就此行而言,您的HTML可能希望得到更好的照顾":an missing:

<form method="get" action="/SiteAvaialabilityServlet>

因此,将其替换为:

<form method="get" action="/SiteAvaialabilityServlet">

希望所有这些错别字都不在您的原始代码中。

PS :请更正您问题中的代码,以帮助所有人帮助您:)。

祝你好运。

2020-06-08