2017-08-09 21 views
0

我有一個可搜索字段和結果表的搜索組件。它在視覺上開發並使用了具有搜索邏輯的WCMUsePojo類。 在頁面加載時,必須顯示所有數據,並單擊搜索按鈕 - 必須顯示與搜索條件相對應的數據。 我將表單元素添加到了我的html頁面,action =「get」。因此,在點擊搜索按鈕時,刷新頁面並顯示與搜索條件相對應的數據。 但是,搜索條件輸入參數作爲查詢字符串添加到URL看起來像不好的設計(長網址中有查詢字符串參數) 我也嘗試創建一個servlet來重定向到同一頁面,但這也不是加工。在dispatcher.forward上獲得空指針異常。 請問您能否提出解決此問題的方法。通過post方法使用視覺提交相同的頁面並調用WCMUsepojo類

在此先感謝

+0

這與Sightly無關,因爲Sightly只是一種模板語言。如果你正在做一個GET,你如何獲得除url之外的搜索參數作爲參數?我認爲你應該在有效載荷中使用帶有數據的POST,但從描述中很難提出解決方案......也許如果你有一個servlet執行搜索並返回一個JSON對象,然後讓一些JS處理結果並在頁面中顯示它們?這種方法聽起來如何? – Bambara

回答

1

然而,搜索條件輸入參數都被添加作爲查詢字符串,它看起來像不好的設計的URL(其中具有查詢字符串PARAMS長的URL)

這ISN不錯的設計,這是GET請求的工作原理。

要正確地幫助您,您必須在servlet中共享代碼。我不知道你正在使用的約束,但我建議你通過AJAX執行搜索。下面是一個示例搜索實現(這只是一個演示,不是生產準備好了!)

搜索表單組件: https://github.com/mickleroy/aem-ajax-search/blob/master/content/src/main/content/jcr_root/apps/ajax-search/components/search/search.jsp

JavaScript中處理的搜索提交: https://github.com/mickleroy/aem-ajax-search/blob/master/content/src/main/content/jcr_root/apps/ajax-search/components/search/clientlibs/ajaxSearch.js

Servlet的服務結果: https://github.com/mickleroy/aem-ajax-search/blob/master/bundle/src/main/java/com/github/mickleroy/servlets/AbstractSearchServlet.java

希望這會有所幫助

相關問題