1

Play 2.2 には説明できないことがあります。したがって、「ルート」ファイルの次の行は正常にコンパイルされます。

GET      /css/*file      controllers.Assets.at(path="/public/stylesheets", file)

しかし、そこから「パス=」の部分を削除すると

GET      /css/*file      controllers.Assets.at("/public/stylesheets", file)

コンソールに次のエラーが表示されます。

)' expected but"' が C:\Workspace\Private\Play\bubusik\conf\routes の 9 行目に見つかりました。

at() 関数にパラメータの名前を明示的に指定する必要があるのでしょうか? Play テンプレート エンジンの文書化されていない要件ですか?

4

1 に答える 1

1

それは正規表現ルートの使用と関係があります。つまり、識別子を使用している場合は、それを使用できます。ただし、値を入力する場合は、値の関数引数名を指定する必要があります。それを説明するには、以下のシナリオを見てください。

POST     /:id                   controllers.Application.index(id)

を使用するindex2(id)と、正規表現idは指定された URL から抽出して使用します。しかし、あなたの場合のようにデフォルト値を渡す必要がある場合、慣習は引数名を指定することです。

POST     /:id                   controllers.Application.index2(id,name="defaultName")

上記のように、デフォルトの引数として渡す必要がある場合は、関数defaultNameの引数名を指定する必要があります(この場合)。index2name

この規則はid、指定した値で識別子 (最初のケースの例) を区別するために使用されます。if"defaultName"の代わりにname="defaultName"then を使用すると、 on の場合には機能しませんInt

于 2013-10-31T18:48:21.237 に答える