我正在使用JSP標記文件將「小部件」添加到我的應用程序頁面。Struts2中的動態JSP標記文件
是否可以執行與JSP標記文件相關的操作,因此它將像動態內容一樣填充,就像普通頁面一樣,然後在某處「注入」?
假設我有這樣的標籤文件:<c:onlinemembers />
。它顯示在線成員的列表。 我需要在顯示動態數據之前用它來填充它。
有什麼建議嗎?
我正在使用JSP標記文件將「小部件」添加到我的應用程序頁面。Struts2中的動態JSP標記文件
是否可以執行與JSP標記文件相關的操作,因此它將像動態內容一樣填充,就像普通頁面一樣,然後在某處「注入」?
假設我有這樣的標籤文件:<c:onlinemembers />
。它顯示在線成員的列表。 我需要在顯示動態數據之前用它來填充它。
有什麼建議嗎?
編輯:正如Alexandr指出的那樣,這在Struts 2.0.x中很好,Struts集成了Dojo標籤。從Struts 2.1.x開始,應該使用jQuery(具有類似的機制)。
全部取決於您的Struts2版本。
或者您可以使用內置的Struts2/Dojo AJAX功能。
<head>
<script type="text/javascript">
// Scripts executed when loading the JSP:
function configPage(){
// Dojo topic function subscribing:
dojo.event.topic.getTopic("myTopic").subscribe(null, "updateDivFunction");
}
function updateDivFunction(param1, param2){
// Get the Div
var myDiv = dojo.widget.byId("myDynamicDiv");
// Set a new href to the AJAX action to call,
// which will return a partial JSP (a snippet),
// as mapped normally in struts.xml...
myDiv.href = "loadDynamicDivAjax.do?param1="+param1+"¶m2="+param2;
// Force the div to reload with AJAX now.
resultDiv.refresh();
}
function updateDivWrapper(param1, param2){
// Publishing the topic now, will invoke the
// "updateDivFunction" set in configPage()...
dojo.event.topic.publish("myTopic", param1, param2);
}
</script>
</head>
<body onload="javascript:configPage();">
<h1>My main JSP page</h1>
<br/><br/>
<s:div id="myDynamicDiv" theme="ajax"
loadingText="Loading..."
errorText="Errors occurred...">
</s:div>
<br/>
<span>
Click below links to load the DIV with DOJO
through an AJAX call, and different parameters.
</span>
<br/><br/>
<a href="javascript:updateDivWrapper('1','2')">
Update with param1=1 and param2=2
</a>
<br/><br/>
<a href="javascript:updateDivWrapper('8','9')">
Update with param1=8 and param2=9
</a>
</body>
在struts.xml中,你應該loadDynamicDivAjaxAction映射到恢復正常的JSP代碼片段的結果。就是這樣...
「內置」道場?真?實際上它是一個插件,Struts2 dojo插件已被棄用。還有其他的Struts2的javascript插件。例如http://code.google.com/p/struts2-jquery/。 –
我們被困在2.0.14 ...(它內置的地方,struts-tags和struts-dojo-tags之間沒有分隔):S 感謝您指出它,不知道它已被棄用。 –
不客氣。 –
我會使用Ajax並將數據作爲JSON返回並使用jQuery顯示,或創建一個自定義JSP標記來執行此操作。我並不喜歡後者。從您的操作中返回JSON並使用jQuery是一種簡單的方法。希望這可以幫助。
使用JSP調用標記。將JSP與將通過AJAX調用的操作相關聯。 JSP只能返回必要的片段HTML。 –
看看Apache瓷磚提供了什麼。作爲一個模板解決方案,它很好,它不會消除對Ajax的需求,但是你將能夠很好地分解事情,這樣你就可以看到你的組件。 – Quaternion