代码之家  ›  专栏  ›  技术社区  ›  Allyn

重定向到lift中的搜索参数

  •  2
  • Allyn  · 技术社区  · 14 年前

    http://localhost/search#param )因此,如果用户复制了URL并稍后返回,我可以重新创建搜索请求。显然,另一方面是在片段中拖拽锚字段,以便在必要时重新创建搜索。我有点不知所措如何做到这一点…甚至不知道一个好的起点在哪里。任何有关如何在电梯中进行此操作的提示或提示都将非常受欢迎。

    2 回复  |  直到 14 年前
        1
  •  2
  •   Collin    14 年前

    我刚开始工作。。这是我的模板:

    <lift:surround with="default" at="content">
        <lift:searchSnippet.search>
            <s:query/>
            <s:submit/>
        </lift:searchSnippet.search>
    </lift:surround>
    

    我的片段:

    class SearchSnippet extends Logger {
    
      val ns = "s"
    
      def search(in: NodeSeq) : NodeSeq = {
        // save the url of the original page request
        val url = S.uriAndQueryString.openOr("")
    
        var query = ""
        def submit : JsCmd = {
          JsRaw("window.location.href = '" + url + "#" + query + "'")
        }
        SHtml.ajaxForm({
          bind(ns, in,
            "query" -> SHtml.text(query, { q =>
              query = q
            }),
            "submit" -> (SHtml.submit("Search", () => {}) ++ SHtml.hidden(submit _)))
        })
      }
    }
    

    技巧是在代码片段最初呈现时保存url,这样就不会得到ajax请求/。。。ajax表单提交的uri。

        2
  •  0
  •   Jim Barrows    14 年前
    LiftRules.satelessRewrite.append{
    case RewriteRequest(ParsePath(List("path","to", myParam), _, _, _(, _, _) => RewriteResponse("path" :: "to" :: Nil, Map("myParam" -> myParam))
    }
    

    注意,我复制了这个,没有粘贴。所以如果这本书不起作用的话,你可能应该看看。