【问题标题】:play framework routing error播放框架路由错误
【发布时间】:2012-01-23 23:06:57
【问题描述】:

显然我并不像我想象的那样理解 Play 的路由。我试图以我想要的方式获取表单的 url,并且由于play.data.binding.Unbinder.unBind(Unbinder.java:62) 中的无限递归,我从Groups.view 对render 的调用得到StackOverflowError。

当我有默认的包罗万象的路线时,这一切都很好。我现在拥有的是:

GET  /groups/{<[\d\w]+=.*>rdn}      ldapauth.Groups.view
POST /groups/{<[\d\w]+=.*>rdn}  ldapauth.Groups.save

Groups.view 工作正常,直到我添加对 Groups.save 的引用:

#{form @ldapauth.Groups.save(rdn: 'cn=test')}`
#{/form}

在查看页面上,然后我收到上面的错误。有人知道这里的实际问题是什么吗?

【问题讨论】:

    标签: routing playframework


    【解决方案1】:

    UnBind 是将参数转换为正确的 Java/Scala 对象的类。

    我相信您的错误来自将 rdn: 'cn=test' 添加到方法中。使用名称 rdn 和您想要的值定义一个隐藏输入,然后让 Play 进行解除绑定。

    我警告您,这可能无法解决您的问题,有许多与路由相关的已知问题,Play 在某些情况下表现不佳。我建议您将 post 的定义更改为:

    POST /groups/save/{<[\d\w]+=.*>rdn}  ldapauth.Groups.save
    

    在你调用的 save 的最后一行

    view(<params>)
    

    因此您将被重定向回 get 视图(如果您想去其他地方,则可以使用其他方法)。

    【讨论】:

      猜你喜欢
      • 2018-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-12
      • 1970-01-01
      • 1970-01-01
      • 2015-09-19
      • 1970-01-01
      相关资源
      最近更新 更多