jsp中select标签传值的奇特问题,虽然我已经解决,但是还是说下和大家探讨
Bing 2009-01-21 03:37:39 <body>
<p>
请选择查询城市
</p>
<form action="tongji2.jsp" method="post">
<select name="city" id="city">
<option selected value="">
请选择
</option>
<%
DataBaseInquire dbInquire = new DataBaseInquire();
for (int i = 0; i < dbInquire.ByCityDictionaryInquire().size(); i++) {
ZjCity zjcity = (ZjCity) dbInquire.ByCityDictionaryInquire()
.get(i);
%>
<option value="<%=zjcity.getValue()%>"><%=zjcity.getValue()%></option>
<%
}
%>
</select>
<input type="submit" value="提交"></input>
<input type="reset" value="重置"></input>
</form>
<table border>
<%
System.out.println("city参数值" + request.getParameter("city"));
if ( request.getParameter("city").equals("")||request.getParameter("city")==null)
{
for (int i = 0; i < dbInquire.ByCityDictionaryInquire().size(); i++) {
ZjCity zcity = (ZjCity) dbInquire.ByCityDictionaryInquire()
.get(i);
%>
<tr>
<td><%=zcity.getValue()%><br>
</td>
<td><%=dbInquire.ByCreatorIsNullInquire(zcity.getCode(),
-1)%><br>
</td>
<td><%=dbInquire.ByCreatorIsNullInquire(zcity.getCode(),
3)%><br>
</td>
<td><%=dbInquire.ByCreatorIsNullInquire(zcity.getCode(),
1)%><br>
</td>
</tr>
<%
}
} else {
for (int i = 0; i < dbInquire.ByCityDictionaryInquire(
request.getParameter("city")).size(); i++) {
ZjCity zcity = (ZjCity) dbInquire.ByCityDictionaryInquire(
request.getParameter("city")).get(i);
%><tr>
<td><%=zcity.getValue()%><br>
</td>
<td><%=dbInquire.ByCreatorIsNullInquire(zcity.getCode(),
-1)%><br>
</td>
<td><%=dbInquire.ByCreatorIsNullInquire(zcity.getCode(),
3)%><br>
</td>
<td><%=dbInquire.ByCreatorIsNullInquire(zcity.getCode(),
1)%><br>
</td>
</tr>
<%
}
}
%>
</table>
</body>
以上是我一个tongji2.jsp的代码,其中select选择框是从数据库列出浙江的地市,dbInquire.ByCityDictionaryInquire()是查询数据库中地市名称。dbInquire.ByCreatorIsNullInquire()从数据库字典城市code查询各地市的人数.
http://localhost:98/tongji/tongji2.jsp我键入浏览器,跳出java.nullpointerException。我查找问题一个下午。问题是
请看if ( request.getParameter("city").equals("")||request.getParameter("city")==null)这句,如果写成if (request.getParameter("city")==null ||request.getParameter("city").equals(""))就对了。奇怪了,System.out.println("city参数值" + request.getParameter("city"));打印确实是null为什么if ( request.getParameter("city").equals("")||request.getParameter("city")==null)这句不能判断?是不是因为request.getParameter("city")处理这个参数原因呢?