首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Lift:带有多个params的菜单[Menu.params]

Lift:带有多个params的菜单[Menu.params]
EN

Stack Overflow用户
提问于 2013-11-28 11:25:05
回答 1查看 286关注 0票数 0

如何用两个或多个参数建立一个url?

我有个案例课:

代码语言:javascript
复制
case class PageDetail(index: String, id: String)

我在试着做菜单val:

代码语言:javascript
复制
val menu = Menu.params[(String,String)]( "pageDetail", "Page Detail",
    ids => { case Full(index) :: Full(id) :: Nil => Full((index, id))},
    pi => { case (index, id) => index :: id :: Nil }) / "admin" / "detail"

我想获得一个链接,如./admin/detail/ indexxxxxxx / idddddddddd,其中indexxxxxxx和idddddddddd是我的params。因为这是行不通的。编译时出错。我该怎么做?谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-28 13:15:54

最有可能的是,问题在你的提取器模式中。当您在列表中进行匹配时,请在这里:

代码语言:javascript
复制
case Full(index) :: Full(id) :: Nil => Full((index, id))

参数总是要定义的,所以Full是不可能的。您可以使用函数(如AsInt )要求参数为Int,否则它将查找字符串。您很可能希望从以下几个方面开始(或对此进行一些更改):

代码语言:javascript
复制
case index :: id :: Nil => Full((index, id))

如果使用空表示参数是可选的,则只需在参数省略后添加第二个case语句即可。

另外,您可能需要将/ **添加到/ "admin" / "detail"映射的末尾,以便它知道从那里获取参数。

因此,代码应该如下所示:

代码语言:javascript
复制
val menu = Menu.params[(String,String)]( "pageDetail", "Page Detail",
  { 
    case index :: id :: Nil => Full((index, id))
  }, { 
    case (index, id) => index :: id :: Nil 
  }
) / "admin" / "detail" / **
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20264888

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档