2011-07-22 23 views
0

我正在嘗試使用Struts2更新頁面(using jOWL to display an ontology)。原始HTML頁面使用jQuery模板,有幾行如下:在Struts2中使用jQuery模板

<h2 class="propertybox title" data-jowl="rdfs:label">${rdfs:label}</h2> 
<span class="alt">${?p}</span><span>: </span><span>${?t}</span> 

顯示一個在jQuery腳本文件中確定的變量。這適用於.html文件。但是,.jsp文件認爲我正在嘗試使用Struts變量而不是jQuery模板。遇到冒號和問號時它會崩潰。

我的確發現了一些jQuery Struts2 libraries,但我沒有看到任何將映射到jQuery模板的標籤。有沒有另一種方法來做到這一點?

+0

可能重複的[jQuery的TMPL和JSP代碼不打很好。](http://stackoverflow.com/questions/6380074/jquery-tmpl-and-jsp-code-not-playing-nicely) – BalusC

回答

1

你的問題是,一個jsp認爲$ {}是EL。所以,你需要以某種方式逃避快遞的一部分,這不會是漂亮:

From the JSP 2 spec: 

For literal values that include the character sequence ${, JSP 2.0 provides a 
way to escape them by using the sequence ${'${'. For example, the following 
character sequence is translated into the literal value ${expr}: 

${'${'}expr} 

來源:http://www.velocityreviews.com/forums/t129212-ot-jsp-escape-el-expressions.html

+0

即它會讓它編譯(如[轉義問號](https://github.com/blueimp/jQuery-File-Upload/issues/359))! 但是,在這兩種情況下,它都會顯示文本而不是模板變量結果(例如:$ {rdfs:label}而不是Wine)。我不確定是否只有Tomcat服務器(或者Eclipse網絡瀏覽器)出現問題,或者是否有其他東西丟失。 – winchella

+0

我開始覺得有什麼我失蹤了。 jQuery模板是客戶端。所以只要頁面到達逃脫tomcat或任何應用程序服務器不再負責任。客戶端然後加載頁面並執行一個jQuery腳本,然後解析這些變量。 – Quaternion

+0

事實證明,該腳本存在Internet Explorer問題(由於某種原因,該問題只出現在Struts項目中,而不是相同內容的.html版本)。如果我更改了我試圖查看或在Firefox中查看它的文件的擴展名,模板數據顯示正常。我仍然認爲這一點。 謝謝!您的意見非常有幫助。 – winchella

1

在問候EL和建議圖案:

${'${'}expr} 

根據Oracle,您可以禁用EL解析:Deactivating EL Expression Evaluation

<%@ page isELIgnored ="true|false" %> 

因爲標識EL表達式的模式 - $ {} - 在JSP 2.0之前的JSP規範中未保留,所以可能會有應用程序在這種模式下逐個傳遞。爲了防止評估模式,您可以禁用EL評估。

此屬性的有效值爲true和false。如果它是真的,EL表達式在靜態文本或標籤屬性中出現時會被忽略。如果它是假的,EL表達式由容器評估。