|
||||||||||||||||
| 前のページ 1 2 | ||||||||||||||||
| Path(/path)アトリビュート | ||||||||||||||||
|
Pathも標準的なクラス名とメソッド名の対応を無視します。引数とパスが一致した場合に、このアクションが実行されます。引数を「/」から始めれば、Globalのようにクラス名を無視します。「/」から始めなければクラス名をパスとして使い、引数は相対パスとみなされます。 |
||||||||||||||||
| Regex('^/match/absolute/path$')アトリビュート | ||||||||||||||||
|
Globalと似ていますが、引数の正規表現がパスとマッチした場合にアクションが呼ばれます。 |
||||||||||||||||
| LocalRegex('^match/relative/path')アトリビュート | ||||||||||||||||
|
Globalに対するLocalと同様で、Regexに対するLocalRegexです。引数の正規表現とマッチした場合にアクションが呼ばれますが、クラス名とパスの対応を無視しません。 なお、RegexやLocalRegexで正規表現を使うのは、「^user/(\w+)/method」のように途中にユーザーIDが入るような場合だと思います。こういう時、「(\w+)」の中身を取得できないと意味がありませんね。そこで次のようにします。
$c->req->snippets->[0];
snippestsは配列リファレンスを返します。ここに、マッチした文字列が入っています。 以上が、主なアトリビュートの説明です。 |
||||||||||||||||
| Bookmark::Controller::Root | ||||||||||||||||
|
さて、一通り分かった所でContorollerディレクトリの下のRoot.pmを見てみましょう(リスト6)。先ほど見たように、これはパスが「/」用のクラスです。 リスト6:デフォルトのRoot.pm(抜粋)
package Bookmark::Controller::Root;
前述のdefaultが定義されています。さきほどhttp://localhost:3000/をブラウザーでアクセスしましたが、その後ろに適当な文字列を入れて(例えば「http://localhost:3000/xyz」や「http://localhost:3000/hogehoge」など)アクセスしてみて下さい。同じページが表示されるはずです。xyzもhogehogeも定義されていないため、defaultが呼ばれているわけです。 もう一つ、コメントになっていますが、end:Privateが定義されています。これは、名前の通り、最後に自動的に呼ばれるアクションです。通常はここで、ビュー関係の処理を行います。 |
||||||||||||||||
|
前のページ 1 2 |
||||||||||||||||
|
|
||||||||||||||||
|
||||||||||||||||
|
|
||||||||||||||||
|
||||||||||||||||
|
|
||||||||||||||||
|
||||||||||||||||

