Java 在Play框架中处理全局搜索框

Java 在Play框架中处理全局搜索框,java,playframework,playframework-2.0,Java,Playframework,Playframework 2.0,在我的网页上,我希望有一个全局搜索框,即搜索框,它在每个子页面上都可用(比如在网页的页眉中,如下图所示)。为此,我将搜索表单放入“基本”模板中,该模板用于每个子页面,效果良好。但当我想显示显示搜索结果的页面时,我的问题就开始了。在此页面上,我希望实现以下目标之一: 在此全局搜索框中显示查询字符串值 隐藏全局搜索框(这样我就可以在结果页中放置更高级的搜索框) 要做第一件事,我必须向基本模板提供查询字符串。这意味着,我必须为基本模板添加新的参数,以便每个视图也需要这样的参数(大多数时候是空字符串)。

在我的网页上,我希望有一个全局搜索框,即搜索框,它在每个子页面上都可用(比如在网页的页眉中,如下图所示)。为此,我将搜索表单放入“基本”模板中,该模板用于每个子页面,效果良好。但当我想显示显示搜索结果的页面时,我的问题就开始了。在此页面上,我希望实现以下目标之一:

  • 在此全局搜索框中显示查询字符串值
  • 隐藏全局搜索框(这样我就可以在结果页中放置更高级的搜索框)
  • 要做第一件事,我必须向基本模板提供查询字符串。这意味着,我必须为基本模板添加新的参数,以便每个视图也需要这样的参数(大多数时候是空字符串)。我说得对吗?有没有更简单的方法

    对于第二件事,我必须检测当前URL并检查这是否是搜索结果页面。似乎要实现这一点,我必须将请求参数添加到基本模板中(这基本上意味着这与提供查询字符串的问题相同)

    有没有更简单的方法


    顺便说一句,我使用的是java。

    你的问题与本网站目前投票最多的playframework-2.0问题的精神是一致的。我建议查看问题的答案,特别是关于HTTP上下文的部分。在上下文中使用
    args
    映射将允许您实现以下任一行为:

    在此全局搜索框中显示查询字符串值

    让处理搜索请求的操作将搜索词放入特定键下的上下文映射中,然后在搜索框标记中检查该键

    隐藏全局搜索框(这样我就可以在结果页中放置更高级的搜索框)

    让处理搜索请求的操作将布尔值放入特定键下的上下文映射中,然后根据该键的存在/值有条件地呈现搜索框标记。

    • 首先,您可以在基本布局中使用optionall参数,就像

      @(title: String, query: String = null)
      
      因此,您只能在结果视图中使用它,如:

      @myBaseLayout(title="Search results", query=query) 
      
    • 要在搜索结果上隐藏searchbox,您可以使用Scala条件或javascript,这里没有magick
    • 您可以使用单独的布局来搜索结果