為了說清楚這個問題,必須從頭說起。
首先從后臺配置一個參數,放到一個字段里,該字段叫做keywords,這個參數的值叫做efmis://|efmfj|username|2200|0||2014|:7001/cssServerportal222012/|||||02,姑且不去管這個值有什么含義,相信很多人都遇到過比這個更復雜的字符串。后臺配置以后,前臺可以這么來顯示:${tag_bean.keywords},可以肯定,無論后臺配置成什么,前臺一定會原定不變的顯示出來,第一個問題出現:在username這個位置上,嵌入的是當前登錄用戶的用戶名,必須是動態代碼。難道要寫成efmis://|efmfj|${username}|2200|0||2014|:7001/cssServerportal222012?這樣寫跟期望可有所不同,它會原樣不變的顯示出來,并不會把EL表達式翻譯成動態代碼,暫時不考慮能不能使用EL表達式的嵌套,很顯然不能直接使用,一定要要處理這么一個字符串。
這個字符串是要作為一個js方法的參數的,例如:
復制代碼 代碼如下:
<li [#if c.keywords?exists] keywords="${c.keywords}"
[/#if] path="${c.path}">
<a href="javascript:void(0)"><span>${c.name}</span>
</a>
</li>
復制代碼 代碼如下:
clickClient = function(path,keywords){
//解析分解keywords開始
keywords = keywords.replace("username","${user.username}");
var suffIndex=keywords.indexOf("http");
var prefix = keywords.substr(0,suffIndex-1);
var suffix = keywords.substr(suffIndex-1);
var preIndex=prefix.lastIndexOf("|")+1;
var year = prefix.substr(preIndex);
prefix = prefix.substr(0,preIndex);
//解析分解keywords結束
//合并url
keywords = prefix+$("#year").val()+suffix;
clientInvoke(path,keywords);
}
復制代碼 代碼如下:
年度切換
<select>
<option value="2012">2012</option>
<option value="2013">2013</option>
<option value="2014" selected="selected">2014</option>
<option value="2015">2015</option>
</select>
復制代碼 代碼如下:
$(document).ready(function(){
if(getCookie("Year")==null){//不存在該cookie,放進去
setCookie("Year",$("#year").val());
}else{
//已經存在該cookie,則從中取出
$("#year").val(getCookie("Year"));
}
});
//設置cookie
function setCookie(name,value)
{
//var Days = 30;
//var exp = new Date();
//exp.setTime(exp.getTime() + 365*24*60*60*1000);
document.cookie = name + "="+ escape (value);
// + ";expires=" + exp.toGMTString();
}
//讀取cookies
function getCookie(name)
{
var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");
if(arr=document.cookie.match(reg)) return unescape(arr[2]);
else return null;
}
復制代碼 代碼如下:
switchYear=function(year){
setCookie("Year",year);
}
新聞熱點
疑難解答
圖片精選