JSP-标签-servlet传值--String判断是否为空---遇到了坑

先说一下我遇到的问题:

1、刚开始在servlet中获取sid的值,结果为空

2、在servlet中使用if(sid!=null)请求转发到一个界面A.jsp    else 转发到另一个 B.jsp

 解决思路:

3、跳转总是跳到sid==null的界面。

刚开始在servlet中获取值,结果为空

1、检查jsp中的<a>标签传值的事后是否出现了问题。

  <a href="${pageContext.request.contextPath}/FindStudentServlet?sid=${student.sid}">查看</a>

好像没啥问题,检查我jsp中获取值的代码

String sid=request.getAttribute("sid")+"";

看到这有的人就明白了-----<a>标签传值必须用:

String sid=request.getParameter("sid");

然而:我第一次遇到不懂。我怎么做的呢,先打印看看sid的值

System.out.println(sid+"------------------------------");

结果很明显sid=null。但是还不对啊,跳转界面总是跳转到sid!=null的界面,纠结了半天。想了半天,就搜了一下java判断String是否为空,还真有写的超级好的。摘过来:。。。。不小心给关了找不到了

哈哈,自己搜一个吧,

我记得他推荐的方法:

就是这样的:他最推荐第一种。我觉的都行,都能解决我的问题

if(sid==null&&sid.length()<=0) System.out.println("空");
if("".equals(sid)&&sid.length()<=0) System.out.println("空");
if(sid!=null&&sid.length()>0) System.out.println("不空");
if((!"".equals(sid))&&sid.length()>0) System.out.println("不空");

然而我写的是错误的:这样:不知道你是不是哈哈

if(sid!=null) System.out.println("有些情况为空,还能走这个,即这是个坑");
if(!"".equals(sid)) System.out.println("有些情况为空,还能走这个,即这是个坑");

确实我打印了我的sid和sid的长度:

System.out.println(sid+"------------------------------"+sid.length());

结果:

果然是个坑。。。

 

然后我值没获得到,就以为传值的地方出现了问题。就看了看<a>标签的东西

  <a href="${pageContext.request.contextPath}/FindStudentServlet?sid=${student.sid}">查看</a>

也没问题,当然这时候我还不会用debug,然后我就去想那出现了问题。是不是<a>标签传值有什么特性???

然后真被我搜出来了一个总结的很不错的人。

摘过来: https://blog.csdn.net/u010003835/article/details/49978687

总结的真心不错。

然后就知道哪错了。彻底解决。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章