没选的话值是null,太小气了。20分
解决方案 »
- 关于开发 java 快速开发平台的一些想法
- JSP 中SQL语句查询时数据库字段里的数据大小写问题
- jsp中<select><option/></select>如何使用和取值,谁有写好的例子,可以给借鉴一下
- 竟然出现空指针错误,这种问题还能出现?
- hibernate session.save问题 (servlet中)
- [菜鸟系列提问]我的JSP运行不了。
- 一个循环的list数据。装的都是类的对象。怎么知道修改了哪个
- jb里如何调整jsp+bean的?
- 如何根据check项从ArrayList中取出String[],构造URL?
- raplaceALL在那个包
- 一个简单的bean运用出现的问题?
- 怎样从JSP的界面上跳转到ASP的页面上,一个简单的问题
String[] sec=request.getParameterValues("sec");
if(sec==null){
//abc=0;
}
这个值根本就传不过来,提示出错是空指针,不是null,这是两玛事啊。
<%
String[] sec=request.getParameterValues("sec");
if(sec==null)out.println("I am null");
%>
我试了下这个方法:
<input type="checkbox" name="sec" value="1" checked>
结果就传来了正确的值。当去掉checked时,提示出错是空指针
a1.jsp
<form action=a2.jsp method=post>
<input type="checkbox" name="sec" value="1" checked>
<input type=submit>
</form>
a2.jsp
<%
String[] sec=request.getParameterValues("sec");
if(sec==null)out.println("i am null");
else out.println(sec[0]);
%>
<% if(sec.equals("1")){ %>
<input type="checkbox" checked name="sec" value="1">td>
<% }else if(sec.equals("0")){ %>
<input type="checkbox" name="sec" value="0">td>
<% } %>
提交后很简单:
String[] security=request.getParameterValues("sec");
out.println("<script>alert('"+security[0]+"');</script>");
问题就出在只能提交被选中了的。
你用数组接,永远都接不到没选中的。
如果你是单个地去接,可以接到null。
<%
String[] security={"0"};//这里初始化成你想要的数据
if(request.getParameterValues("sec")!=null)//不为null时才赋值
security=request.getParameterValues("sec");
out.println("<script>alert('"+security[0]+"');</script>");
%>
另外你的第一段代码也可改成
<input type="checkbox" name="sec" value="<%=sec%>" <%if(sec.equals("1"))out.println(" checked");%> >
你的代码,不正确呀,
security为空的时候,是不能对它进行应用的呀,
String[] security=request.getParameterValues("sec");
if (sec!=null){
out.println("<script>alert('"+security[0]+"');</script>");
}
else
{
out.println("<script>alert('你还没选择呢');</script>");
}
ibeyond.org正在建设中,即将推出WebAnyWhere测试版,敬请关注。
WebAnyWhere可以将您的顶级域名解析到您的动态ip上去,让您拥有自己的互联网主机。
我明白意思了,用了一下也正确了。新问题又出来了:
只能传过来以前就checked的是1,取消了他的选中传来的就是0。
如果以前就没有被选中,再选中的话,还是传来的是0。
这是怎么回事?
1。在客户端用javascript实现,如下
<input type="checkbox" name="sec" value="<%=sec%>" <%if(sec.equals("1"))out.println("checked");%> onclick="javascript:this.value=this.checked?1:0">
接收页面仍为
<%
String[] security={"0"};//这里初始化成你想要的数据
if(request.getParameterValues("sec")!=null)//不为null时才赋值
security=request.getParameterValues("sec");
out.println("<script>alert('"+security[0]+"');</script>");
%>
2。在接收端做处理
发送端不变,接受端根据是否为null再赋不同的值
<%
String[] security={"0"};//这里初始化成你想要的数据
if(request.getParameterValues("sec")!=null)//不为null时才赋值
security[0]="1";
out.println("<script>alert('"+security[0]+"');</script>");
%>
另外,你为什么要用数组呢,如果只有一个checkbox的话,用String request.getParameter()就行了