それなりの日記 このページをアンテナに追加 RSSフィード

2007-05-28

[][] GrailsのScaffoldingとWicketプラグインの共存について

前回からの続きです。

さて、Wicketプラグインインストールしたはいいが、従来のGrailsのScaffoldingと共存が出来れば、いろいろとおもしろい使い方が出来ると思われます。

まずは、

をしてみます。その結果、

となります... orz

次に、上記の状態から、

  • grails-app/conf/*UrlMappings.groovy を復活(ただし、最初に作成された状態で)。

をしてみます。その結果、

となります... orz

推察するに、「grails-app/conf/*UrlMappings.groovy」の有無でこの違いとなるため、手がかりはこのファイルにあるのではないかと。

で、このファイルを見てみます。

class WickethelloUrlMappings {
	static mappings = {
	  "/$controller/$action?/$id?"{
	      constraints {
			 // apply constraints here
		  }
	  }
	}	
}

とあり、「http://localhost:8080/wickethello/user」の"/user"、「http://localhost:8080/wickethello/app」の"/app"が上記のURL mappingsにマッチし、マッチした場合は、Grailsサーブレットが動いてしまうのではないかと。で、UserControllerはあるのでリスト表示されるが、AppControllerはないので「404 Not Found」になるのではないかと。

とすると、AppControllerを作成しても意味がないので、「"/app"をURL mappingsにマッチさせなければよいのでは?」となります。

で、「"/app"をマッチさせない」方法が見つけられなかったので、「"/user"がマッチする」方法をとりました。つまり、

class WickethelloUrlMappings {
	static mappings = {
	  "/user/$action?/$id?"{
              controller = "user"
	  }
	}	
}

という方法です。この変更で実行すると、

となりました(^_^)V

ただし、この方法では、URLマッチさせたい設定をすべて記述する必要があります。コントローラの数が多いと馬鹿になりません(-_-;) 誰か、もっとスマートな方法をご存じありませんか?

はてなユーザーのみコメントできます。はてなへログインもしくは新規登録をおこなってください。

トラックバック - http://d.hatena.ne.jp/Groovy/20070528/1180351240