在最近GG項目開發過程,在JSP頁面向背景傳值過程中遇到一個特别奇怪的問題。
在平時這些根本都不是問題,不清楚,卻被這個問題困了很長時間。
一邊情況下,在JSP頁面中往背景傳值就是直接使用:window.locaion.href="xxxxxxxx.action?id=" target="_blank" rel="external nofollow" +id;即可。
不過,現在使用這種方式,值如何也傳不到背景,最後,試了很多種方式,終于找到了2種方式,可以把id值傳到背景。
1>把id值用單引号‘’,括起來。寫法為:window.locaion.href="xxxxxxxx.action?id=‘" target="_blank" rel="external nofollow" +id+“’”;
這樣寫,就可以在背景獲得相應id的值了,不過,如果傳過來的id值為3,那麼背景通過String str = request.getParamers("id"); 此時str值為'3'。下面就需要通過相應的操作來擷取3。
2>直接在id= 後面加上一個 空格,那個傳到背景就是單獨的一個id值,不過,這時要享受會用id,還需要.trim()一下。
寫法為:window.location.href="adContentMgr_updateImageMetaRedirect.do?id= " target="_blank" rel="external nofollow" +id+" ";(這裡再?id= 後面有一個空格)。
在背景時需要.trim(),這時需要先判斷背景擷取的id值是否為空,不為空,再使用.trim()方法。
String id = request.getParameter("id");
if(id1!=null&&!"".equals(id1)){
id1 = id1.trim();
imageMeta = adAssetsService.getImageMetaById(Integer.parseInt(id1));
}
2種方法比較起來,本人比較推薦使用第二種方法,無論是寫法,還是簡單程度來講都是很友善的。
在實際中,我就使用的第二種方法