我在html中有一个下拉框,基于下拉列表中的选定选项我想做一些动作我试过代码但它给了我空指针异常, Html代码:
<td>Status</td>
<td> <select name="select">
<option value="Approve" name="optionvalue">Approve</option>
<option value="Reject" name="optionvalue">Reject</option></td>
</select>
</tr>
<tr>
<td><input type="submit" value="Login" name="btnLogin"/></td>
<tr>
jsp代码:
String submit=request.getParameter("btnLogin");
if(submit!=null)
{
String[] select_values=request.getParameterValues("optionvalue");
String select_value=request.getParameter("select");
if(select_value!=null)
{
for(int i=0;i<select_values.length;i++)
{
if(select_values[i]=="Approve")
{
out.println("<script type=\"text/javascript\">");
out.write("alert('You are selected :" + select_values[i] + "')");
out.println("</script>");
}
else if (select_values[i]=="Reject")
{
out.println("<script type=\"text/javascript\">");
out.write("alert('You are selected :" + select_values[i] + "')");
out.println("</script>");
}
}
}
}
答案 0 :(得分:1)
option HTML tag没有名称属性,因此被忽略,request.getParameterValues("optionvalue")
将始终为空。
您还有重复的代码,需要使用equals
方法比较字符串,因此请将代码更改为:
if("Approve".equals(select_value) || "Reject".equals(select_value)) {
out.println("<script type=\"text/javascript\">");
out.write("alert('You are selected :" + select_value + "')");
out.println("</script>");
}