通过post方法使用sightly提交相同的页面并调用WCMUsepojo类

时间:2017-08-09 14:21:05

标签: forms aem sling sightly

我有一个带有可搜索字段和结果表的搜索组件。它是在使用具有搜索逻辑的WCMUsePojo类中开发的。     在加载页面时,必须显示所有数据,并且在点击搜索按钮时 - 必须显示与搜索条件相对应的数据。     我将表单元素添加到我正常的html页面和action =" get"。因此,单击搜索按钮,页面将刷新,并显示与搜索条件对应的数据。     但是,搜索条件输入参数作为查询字符串添加到URL看起来像糟糕的设计。(长URL中有查询字符串参数)     我还尝试创建一个servlet来重定向到同一页面,但这也无法正常工作。在dispatcher.forward获取空指针异常。     能否请您提出解决此问题的方法。

提前致谢

1 个答案:

答案 0 :(得分:1)

  

但是,搜索条件输入参数作为查询字符串添加到看似糟糕设计的URL。(长网址中有查询字符串参数)

这不是一个糟糕的设计,它是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

希望这有帮助