2017-08-09 23 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

希望这会有所帮助

相关问题