Forms 使用sightly by post方法提交同一页面并调用WCMUsepojo类

Forms 使用sightly by post方法提交同一页面并调用WCMUsepojo类,forms,aem,sling,sightly,Forms,Aem,Sling,Sightly,我有一个带有可搜索字段和结果表的搜索组件。它是在sightly中开发的,并使用具有搜索逻辑的WCMUsePojo类。 加载页面时,必须显示所有数据,单击搜索按钮-必须显示与搜索条件对应的数据。 我将表单元素添加到我的sightly html页面中,并使用action=“get”。所以,点击搜索按钮,页面将刷新,并显示与搜索条件对应的数据。 但是,搜索条件输入参数作为查询字符串添加到URL,这看起来像是糟糕的设计。(长URL中有querystring参数) 我还尝试创建一个servlet来重定向到

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

提前谢谢

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

这不是一个糟糕的设计,这是GET请求的工作方式

为了正确地帮助您,您必须在servlet中共享代码。我不知道您正在处理的约束,但我建议您通过AJAX执行搜索。这是一个示例搜索实现(它只是一个演示,还没有准备好生产!)

搜索表单组件:

处理搜索提交的Javascript:

为结果提供服务的Servlet:


希望这有帮助

这与Sightly无关,因为Sightly只是一种模板语言。如果您正在执行GET,那么如何获取url中以外的搜索参数作为参数?我认为您应该使用一个包含有效负载中数据的POST,但是从描述来看,很难提出解决方案……如果您有一个servlet进行搜索并返回一个JSON对象,然后让一些JS处理结果并在页面中显示它们,也许会这样?这种方法听起来如何?