先說一下我遇到的問題:
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
總結的真心不錯。
然後就知道哪錯了。徹底解決。