Scala Play2.2为什么Assets.at在未指定路径参数名称的情况下不编译?

Scala Play2.2为什么Assets.at在未指定路径参数名称的情况下不编译?,scala,playframework-2.2,Scala,Playframework 2.2,我在游戏2.2中有一些我无法解释的东西。 因此,我的“routes”文件中的以下行编译得很好: GET/css/*file controllers.Assets.at(path=“/public/stylesheets”,file) 但当我从中删除“path=”部分时 GET/css/*file controllers.Assets.at(“/public/stylesheets”,file) 我在控制台中看到以下错误: )“应为”,但在第9行的C:\Workspace\Private\Play

我在游戏2.2中有一些我无法解释的东西。 因此,我的“routes”文件中的以下行编译得很好:
GET/css/*file controllers.Assets.at(path=“/public/stylesheets”,file)

但当我从中删除“path=”部分时
GET/css/*file controllers.Assets.at(“/public/stylesheets”,file)

我在控制台中看到以下错误:

)“应为”,但在第9行的C:\Workspace\Private\Play\bubusik\conf\routes中找到了“


所以我想知道是否需要显式地向at()提供参数的名称函数?这是播放模板引擎的一些未记录的要求吗?

这与正则表达式路由使用有关。简而言之,如果您使用的是标识符,则可以使用它。但如果您输入一个值,则需要为该值指定函数参数名称。要解释它,请查看以下场景:

POST     /:id                   controllers.Application.index(id)
使用
index2(id)
,正则表达式从指定的url中提取
id
,然后使用它。但是,如果要像在您的示例中那样传递一些默认值,则约定是指定参数名称

POST     /:id                   controllers.Application.index2(id,name="defaultName")
与上面一样,如果必须将
defaultName
作为默认参数传递,则需要指定
index2
函数的参数名称(
name


此约定用于使用您指定的值区分标识符(第一种情况下为id)。如果使用“defaultName”而不是“code>name=”defaultName“那么它在
Int

的情况下就不起作用了,这与正则表达式路由的使用有关。简而言之,如果您使用的是标识符,那么就可以使用它。但是如果您输入一个值,那么您需要为该值指定函数参数名称。要解释它,请看下面的场景:

POST     /:id                   controllers.Application.index(id)
使用
index2(id)
,正则表达式从指定的url提取
id
,然后使用它。但是,如果您需要像本例中那样传递一些默认值,那么约定是指定参数名称

POST     /:id                   controllers.Application.index2(id,name="defaultName")
与上面一样,如果必须将
defaultName
作为默认参数传递,则需要指定
index2
函数的参数名称(
name


此约定用于使用指定的值区分标识符(第一种情况下为ex
id
)。如果使用
“defaultName”
而不是
name=“defaultName”
,则在
Int

的情况下它将不起作用。您好,谢谢您的评论。但我并没有试图传递任何默认值,我只是将常规字符串值传递给字符串类型的函数参数。当我的案例涉及函数调用时,只能在函数声明中定义默认值。Hello。对不起,默认情况下,我指的是所有请求的固定值。就像在您的案例中,
“/public/stylesheets”
是为所有请求传递的。在Play docs中是否提到了此约定?@AlexanderArendar我不确定是否在任何地方提到了它,但我一直在使用它。这个链接()告诉我们使用
path=
。找不到明确的linkHi Jatin,谢谢您的评论。但我并没有试图传递任何默认值,我只是将常规字符串值传递给字符串类型的函数参数。当我的案例涉及函数调用时,只能在函数声明中定义默认值。Hello。对不起,默认情况下,我指的是所有请求的固定值。就像在您的案例中,
“/public/stylesheets”
是为所有请求传递的。在Play docs中是否提到了此约定?@AlexanderArendar我不确定是否在任何地方提到了它,但我一直在使用它。这个链接()告诉我们使用
path=
。找不到显式链接