2010-02-08 60 views
2

我想修改一個portlet來通過AJAX爲表加載數據,因爲WS調用花費了大量的時間來完成。該表基本上是一個概覽,每個表格行中有一個條目,每行中有一個鏈接以提供有關條目的更多詳細信息。從AJAX Servlet生成Portlet URL

這裏是我當前如何創建網址爲表中的每一行:

<portlet:renderURL portletMode="VIEW" windowState="maximized" var="showURL"> 
    <portlet:param name="id" value="${entry.ID}"/> 
</portlet:renderURL> 

我已經創建了一個AJAX servlet來接收AJAX調用和返回,將動態使用被添加到表JSON jQuery回調。這個servlet工作正常,並且行被添加到表中而沒有真正的問題。我現在遇到的問題是應該在表格中的鏈接。

我的問題是如何在servlet中模擬上面的JSP代碼來生成正確的portlet URLs?!?!我對portlet有點新鮮,他們的URL似乎是對我的一系列亂碼。

+0

請你分享一下,如何使用Spring 2.5 MVC的Ajax?我試圖完成它。我根據鏈接http://www.jtraining.com/blogs/ajax-with-spring-mvc-and-jquery.html創建了'AjaxViewResolver'和'AjaxView'類,並從這個鏈接返回'JSONObject.toString()'查看具有內容類型爲「text/javascript」的類「renderMergedOutputModel」方法;字符集= UTF-8'。 我在jQuery回調函數中獲得整個Html的東西。 可以請你幫忙嗎? – Parth 2010-06-30 11:28:01

回答

1

看一看this JSP page是如何完成的一個例子 - 無論如何,這是一個很好的方法。查看頁面頂部附近的editPortletUrl的定義,然後查看它以後的用法。

URL中嵌入了PORTLETID令牌,後來由JS替換爲實際值。

此portlet使用Fluid Infusion,我建議高度推薦基於jQuery的功能強大的,可訪問的高階小部件。

布賴恩說

感謝您的想法。我試着做你所擁有的東西,但我沒有看到JS如何能夠佔據佔位符的真實ID。使用的renderURL我得到這個在JS:

var baseShowUrl = "/wps/myportal/portalname/!ut/p/c5/hY7NCoJAFEafpSe4X_Pf0hJ0Sied6M9NCEVIWS2ioqdvwo2b6H7LczhcqijsUj-aY31vrpf6TFuq9C52yJ32DAZCworYz_V0DIDRqq1fTdu8D_tOFUra0oqgZoKD-VLabBpzQPXVDVWqV9UjE6qFzGcmD1XQ-vtHz0jSQgVjmXnr5xxm2HH8uAgdnyRRKnQGJJpJMCcXLI9WSLj6wwW59Noe6NYafjr59BkNBh8sH-CA/dl3/d3/L0lDU0NsQ1FvS1VRIS9JSFNBQ0l3a1FBd3FibTZtLzRDMWI5WUF4RW1TUVVnZyEvN19ETjBNTjdSMjA4MDQ1MEk0RFJPN0pCMDAwMi92aWV3L0NPTlRSQUNUSUQ!/"; 

從德魯遺囑

UPDATE你能告訴我怎麼你或標籤?

+0

感謝您的想法。我試着做你所擁有的東西,但我沒有看到JS如何能夠佔據佔位符的真實ID。使用的renderURL我得到這個在JS: VAR baseShowUrl = 「/ WPS/myportal/portalname/UT/P/C5/hY7NCoJAFEafpSe4X_Pf0hJ0Sied6M9NCEVIWS2ioqdvwo2b6H7LczhcqijsUj-aY31vrpf6TFuq9C52yJ32DAZCworYz_V0DIDRqq1fTdu8D_tOFUra0oqgZoKD-VLabBpzQPXVDVWqV9UjE6qFzGcmD1XQ-vtHz0jSQgVjmXnr5xxm2HH8uAgdnyRRKnQGJJpJMCcXLI9WSLj6wwW59Noe6NYafjr59BkNBh8sH-CA/DL3/D3/L0lDU0NsQ1FvS1VRIS9JSFNBQ0l3a1FBd3FibTZtLzRDMWI5WUF4RW1TUVVnZyEvN19ETjBNTjdSMjA4MDQ1MEk0RFJPN0pCMDAwMi92aWV3L0NPTlRSQUNUSUQ /!」; – 2010-02-08 16:46:06

+0

標記與原始問題中的標記相同,但值用「ENTRYID」替換。看起來,我可以完全忽略參數,並簡單地使用javascript中的?id = foo這樣的查詢字符串,並且一切正常。 – 2010-02-08 17:38:40

+0

我很高興你找到了解決方案,但它很臭,你的解決方案和我的解決方案都不符合標準。用我的方法編寫的適用於我的門戶網站(uPortal)的小程序不適用於您,也不適用於您。 – 2010-02-08 19:10:00