Java 刷新JSP页面后在HTML select元素中保留选定值
我有一个带有下拉框的JSP。我选择一个选项并提交该选项。现在我得到了存储在所选选项数据库中的信息。现在我通过在servlet中设置为自动刷新JSP(HTML页面)Java 刷新JSP页面后在HTML select元素中保留选定值,java,jsp,servlets,http-request-parameters,Java,Jsp,Servlets,Http Request Parameters,我有一个带有下拉框的JSP。我选择一个选项并提交该选项。现在我得到了存储在所选选项数据库中的信息。现在我通过在servlet中设置为自动刷新JSP(HTML页面) //servlet code inside doGet() method HttpSession session=request.getSession(); String selUrl=request.getParameter("urlsel"); String opt=session.setAttribute("select
//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>
请帮帮我。在result.jsp中,我使用
<form method="get" action="/SiteAvaialabilityServlet">
我认为如果您更换这一行,您的代码应该可以正常工作:
response.setHeader("Refresh","10;url="/SiteAvailabilityServlet?ursel="+selectedUrl);
为此:
response.setHeader("Refresh","10;url=/SiteAvailabilityServlet?urlsel="+ selopt);
<form method="get" action="/SiteAvaialabilityServlet">
改变的是:
- 标题中的URL被删除了一个
,我不明白它为什么会在那里“
- 它是
而不是urlsel
ursel
- 为什么
?它是会话属性的名称,您需要的是会话属性的值。既然您有(selectedUrl
),您可能只想使用它selopt
“
:
<form method="get" action="/SiteAvaialabilityServlet>
如果替换这一行,我认为您的代码应该正常工作:
response.setHeader("Refresh","10;url="/SiteAvailabilityServlet?ursel="+selectedUrl);
为此:
response.setHeader("Refresh","10;url=/SiteAvailabilityServlet?urlsel="+ selopt);
<form method="get" action="/SiteAvaialabilityServlet">
改变的是:
- 标题中的URL被删除了一个
“
,我不明白它为什么会在那里
- 它是
urlsel
而不是ursel
- 为什么
selectedUrl
?它是会话属性的名称,您需要的是会话属性的值。既然您有(selopt
),您可能只想使用它
您的HTML可能希望得到更好的处理,就这一行而言,缺少一个“
:
<form method="get" action="/SiteAvaialabilityServlet>
作为对已接受答案的补充,下面是一个JSP(类似于),用于展示如何在刷新页面后使用HTML select元素保留所选值
通知:。在下面的示例中,为了简单起见,使用scriptlet来模拟OP在his中尝试执行的操作
test.jsp
测试页
测试页
选择一些课程
英语
数学
计算机科学
测试提交和保存的参数
传递的“课程”参数(自动刷新后将不显示任何内容)=${param.course}
存储的“savedCourse”属性=${sessionScope.savedCourse}
有关更多信息,请查看以下答案:
关于代码的一些注意事项:
- 设置会话属性和下一行的要点是什么
从会话中获取此属性,但该属性已可用(在
selurl
变量)
- 方法不返回
任何内容(void),因此您不能像在代码中那样将void分配给String类型的变量
opt
。此代码将不会编译,并给您一个错误:不兼容的类型
request.getParameter(“urlsel”)
返回null的原因是
因为这是一个刷新,因此是一个新请求,请求
属性在新请求之间重置。请阅读此处:
作为对已接受答案的补充,下面是一个JSP(类似于),用于展示如何在刷新页面后使用HTML select元素保留所选值
通知:。在下面的示例中,为了简单起见,使用scriptlet来模拟OP在his中尝试执行的操作
test.jsp
测试页
测试页
选择一些课程
英语
数学
计算机科学
测试提交和保存的参数
传递的“课程”参数(自动刷新后将不显示任何内容)=${param.course}
存储的“savedCourse”属性=${sessionScope.savedCourse}
有关更多信息,请查看以下答案:
关于代码的一些注意事项:
- 设置会话属性和下一行的要点是什么
从会话中获取此属性,但该属性已可用(在
selurl
变量)
- 方法不返回
任何内容(void),因此您不能像在代码中那样将void分配给String类型的变量
opt
。此代码将不会编译,并给您一个错误:不兼容的类型
request.getParameter(“urlsel”)
返回null的原因是
因为这是一个刷新,因此是一个新请求,请求
属性在新请求之间重置。请阅读此处:
我没有理解你的意思。请帮助我哪里出错了。即使我使用了会话,为什么在自动刷新网页后我会变为null。请帮助我..我正在尝试帮助:)!我第一条评论的意思是:在表单操作中,当你在问题中发布它时,你忘记了一点“
。首先在问题上添加并编辑它,这样我们就知道它与问题无关。否则,你有什么例外吗?如果是这样,请发布其名称或堆栈。我没有得到您的信息。请帮助我哪里出错。即使我使用了会话,为什么在自动刷新网页后我会变为null。请帮助我..我正在尝试帮助:)!我第一条评论的意思是:在表单操作中,当你在问题中发布它时,你忘记了一点“
。首先在问题上添加并编辑它,这样我们就知道它与问题无关。否则,你有什么例外吗?如果是这样,请发布它的名称或堆栈。是的。我知道了。非常感谢。我使用了selopt而不是selectedUrl。它正在工作。谢谢。哦,没什么!下次这种情况发生在你身上时,只需相信你的逻辑,搜索打字错误或软错误(那些是你混合了一些变量之类的)。祝你好运