【问题标题】:Scala + Play: how to pass a parameter into a route in a template?Scala + Play:如何将参数传递给模板中的路由?
【发布时间】:2014-01-11 12:17:15
【问题描述】:

我正在修补 Scala 和 Play 作为一个周末的学习练习,而让我对模板系统有一点阻碍的一件事是如何将参数传递到路由中。

我的模板如下所示:

 @(wallPosts : Array[models.WallPost], wallPostIndex: Integer)

 ...

 <a href="@routes.Application.index(wallPostIndex = @wallPostIndex)">Next</a>

 ...

我似乎无法将@wallPostIndex 传递到此 href 中的路由中?我该怎么办?

参考路线如下:

GET     /    controllers.Application.index(wallPostIndex: Int ?= 1)

感谢您的帮助。

【问题讨论】:

    标签: scala playframework playframework-2.0 templating


    【解决方案1】:

    尝试在你的href中删除wallPostIndex之前的@,如下所示:

    <a href="@routes.Application.index(wallPostIndex)">Next</a>
    

    【讨论】:

    • 嗨,我试过这个,然后我在链接的查询字符串中什么也没有。有什么想法吗?
    • 另外,如果我在路由中使用 wallPostIndex = 5 作为参数,那么我会在链接中得到一个 ?wallPostIndex=5 查询字符串,所以我想知道如何用 wallPostIndex 替换那个 5最初传递给模板的参数?
    • 可能是因为在您的模板 wallPostIndex 的类型为 Integer 并且路由正在等待 Int。尝试将Integer 更改为Int,告诉我是否可行。
    • 啊啊啊,我想我看到了我的方式的错误。我很困惑,因为我希望 wallPostIndex 参数出现在 URL 中,即使它与默认值匹配(因此不需要查询字符串).. 这个解决方案有效。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    • 2014-07-17
    • 2016-09-21
    • 1970-01-01
    • 2018-06-20
    相关资源
    最近更新 更多