将按钮与 Twitter 中的应用程序路由相关联 Bootstrap UI(与 Play Framework 2.0 一起使用)

Relating buttons to app routes in Twitter Bootstrap UI (using with Play Framework 2.0)

我有一个我知道很基础的问题,实际上我认为 none 我的谷歌搜索已经找到了答案,因为它非常基础。我有一个集成了 Twitter Bootstrap 3 的 Play 2.0 应用程序 UI,但我的问题(我认为)完全与 UI 相关。

我使用提供的 Bootstrap 示例之一创建了一个基本页面。在它上面,有一个带有相关 "Search" 按钮的搜索框。目前,我不知道如何将搜索框的输入传递到我的应用程序中配置的路由。

这是 box/button 代码:

     <form class="navbar-form navbar-right">
        <div class="form-group">
          <input type="text" placeholder="Search for Patient by ID" class="form-control">
        </div>
        <button type="submit" class="btn btn-success">Search</button>
      </form>

我试过将 link 添加到按钮代码中,如下所示:

<button type="submit" a href="@routes.Users.showFhirUserDetails(fhirID: String)" class="btn btn-success">Search</button>

因为我想将搜索框的输入当做参数fhirID,它是一个String。但是我收到一条错误消息,指出找不到方法 showFhirUserDetails() 所需的参数。我的问题是 - 如何将搜索框(或任何类似字段)的输入视为特定参数?

URL 的表单提交需要作为表单 action 属性给出,另外如果你想发送一些字段,它们需要有 name 属性,所以你的代码需要看起来像这样:

<form action="@routes.Users.showFhirUserDetails()" class="navbar-form navbar-right">
  <div class="form-group">
    <input type="text" name="fhirID" placeholder="Search for Patient by ID" class="form-control">
  </div>
  <button type="submit" class="btn btn-success">Search</button>
</form>

并且在您的 routes 文件中,此路由参数必须设置为可选!

GET  /show-details  controllers.Users.showFhirUserDetails(fhirID: String ?= null)

查看 optional params

的文档