Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 刷新JSP页面后在HTML select元素中保留选定值_Java_Jsp_Servlets_Http Request Parameters - Fatal编程技术网

Java 刷新JSP页面后在HTML select元素中保留选定值

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

我有一个带有下拉框的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>
请帮帮我。在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
    ),您可能只想使用它
您的HTML可能希望得到更好的处理,就这一行而言,缺少一个

<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。它正在工作。谢谢。哦,没什么!下次这种情况发生在你身上时,只需相信你的逻辑,搜索打字错误或软错误(那些是你混合了一些变量之类的)。祝你好运