2009-11-04 113 views
0

我是一個JSP新手,我知道有一些taglib文件,據我所知他們是某種自定義的JSP標籤。下面是JavaScript代碼的片段,我不明白:關於JSP和javascript的問題

Polygon.viewPoint = function(index){ 
     window.${ec:safeId('polygon.view')}.Point(Page.ListofPoints.elements[index], index, 100); 
     Page.changeRowColor('row_'+index); 
     Page.getProximityList(index);   
     Page.infoWindowLocation = Page.ListofPoints.elements[index]; 
    } 

JavaScript的問題是不是真的那麼重要,我很感興趣的是,這部分${ec:safeId('poygon.view')}我明白,這部分是某種變量,那是從某處注入的。可能從這裏<%@ taglib uri="/WEB-INF/tld/tagli-ec.tld" prefix="ec"%>或者可能不是..可以有人請解釋這個$後窗口是什麼..它代表什麼?

回答

0

要開始,${}語法是EL (Expression Language)語法。如果您熟悉Scriptlet,則這與<%= %>語法相似,或者在PHP中使用<?= ?>語法(但在將來的發行版中將不再使用)。它基本上只是在將響應發送到客戶端之前訪問並打印服務器端的服務器端控制變量。如果您在瀏覽器中執行「查看源代碼」,則會看到它已被解析/評估。

然後,有${tagprefix:functionname}語法代表EL功能。至此,這使您能夠定義靜態Java方法,它接受一些參數並返回可以在EL中訪問的結果。 JavaRanch有一個相當不錯的常見問題。例如JSTL也有一個非常有用的functions taglib。

+0

如果這是格式是$ {tagprefix:functionname},比這是什麼$ {pageContext.request.contextPath} - >什麼是這個變量/ scriptlet ..或者它是什麼 – 2009-11-05 10:42:06

+0

這大致解決了jspContext。 getPageContext()。Request()方法。getContextPath()。首先,檢查JspContext的API文檔。 – BalusC 2009-11-05 11:04:07

+0

謝謝你的簡單答案。少即是多:D – 2009-11-05 11:40:37