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

總結的真心不錯。

然後就知道哪錯了。徹底解決。

 

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