Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/313.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 刷新页面后如何保持Dropdownlist值不变_Java_Database_Jsp_Servlets - Fatal编程技术网

Java 刷新页面后如何保持Dropdownlist值不变

Java 刷新页面后如何保持Dropdownlist值不变,java,database,jsp,servlets,Java,Database,Jsp,Servlets,我有一个下拉列表 <select name="cate"> <option value="h">India</option> <option value="m">USA</option> <option value="c">England</option> </select> <input type="submit" value="show"> 印度 美国 英格兰 单击“

我有一个下拉列表

<select name="cate">
  <option value="h">India</option>
  <option value="m">USA</option>
  <option value="c">England</option>
</select>
<input type="submit" value="show">

印度
美国
英格兰
单击“显示”按钮时,下表将显示所选国家/地区的详细信息。 详细信息来自数据库,每次单击页面都将刷新

我的问题是,如果用户在下拉列表中选择England并单击show按钮,它将显示详细信息,但下拉列表将只显示名字。 我想显示所选的值名称


请帮帮我。

您可以将
选定的
添加到
标记中,使其成为页面的初始选定值

<option value="h" selected>India</option>
印度
将在页面加载时选择India选项


您需要向JSP添加一些逻辑,以便根据提交页面时选择的值,将
selected
添加到正确的
标记中

对于干净的方法,可以设置cookie

看看这个jquery方法:

HTML代码

<input type=hidden id ="selection" name="selection" value="">
<select name="cate">
  <option onclick="document.getElementById('selection').value='h';" value="h">India</option>
  <option onclick="document.getElementById('selection').value='m';" value="m">USA</option>
  <option onclick="document.getElementById('selection').value='c';" value="c">England</option>
</select>

印度
美国
英格兰
JSP代码

<%
  String selected = request.getParameter("selection");
%>

现在,当您在JSP页面上时,您可以看到用户选择了什么。 渲染元素时,将select属性附加到选定选项

例如:

更新 在显示下拉列表的地方,您必须进行某种验证,在那里您需要检查选择值和实际打印的内容

if(selected ==null || selected.equals('')){
    //do regular printing of the dropdown as you do now
}else{
  out.print("<select>");
  while(rs.next()){
    if(rs.getString("VALUE").equals(selected )){
        out.print("<option value=\""+rs.getString("VALUE")+"\" SELECTED >"+rs.getString("COUNTRY")+"</option>");
    }else{
        out.print("<option value=\""+rs.getString("VALUE")+"\" >"+rs.getString("COUNTRY")+"</option>");
    }
  }
  out.print("</select>");
}
if(selected==null | | selected.equals(“”)){
//像现在一样定期打印下拉列表
}否则{
输出。打印(“”);
while(rs.next()){
如果(rs.getString(“值”).equals(选定)){
out.print(“+rs.getString(“国家”)+”);
}否则{
out.print(“+rs.getString(“国家”)+”);
}
}
输出。打印(“”);
}
PS:代码是动态编写的,可能需要一些异常处理,或者可能存在一些拼写错误

<input type="hidden" name="selectedValue" value="0"/>  
现在将selectedValue设置到servlet请求中

在最终jsp中创建JS函数

function selectedValue(){  

    var value =<%=request.getParameter("selectedValue")%>;  
    if(value !=null)  
        {

        document.f1.slvalue.selectedIndex=value ;          

        }    

} 
函数selectedValue(){
var值=;
if(值!=null)
{
document.f1.slvalue.selectedIndex=value;
}    
} 
在最后一个jsp页面的bodyload上调用selectedValue()函数。
“slvalue”是您的选择标签的名称

您可以发布jsp和Servlet的代码吗?您的选项值是静态的还是动态的?您可以同时发布生成下拉列表的代码吗?下拉列表值是静态的。除了下拉列表外,其他一切都正常工作。提交后,下拉列表值是默认值。谢谢您,bt它不工作。单击我的显示按钮,它将转到servlet,在我编写的servlet选择查询中,提交后页面将刷新,然后选项值将是默认值。
(这是所选选项的值)的值已与表单一起发布(除非它被禁用,但这里不是这种情况)因此,将该值保存到隐藏的输入中是一个不必要的额外步骤。@Anthony Grist这是一种获取所选选项的明显方法,以便OP可以将其嵌入到他的代码中。你是对的,这是不必要的
function selectedValue(){  

    var value =<%=request.getParameter("selectedValue")%>;  
    if(value !=null)  
        {

        document.f1.slvalue.selectedIndex=value ;          

        }    

}