8

ビュー ファーストの代わりに MVC を使用してスカラ/リフト アプリケーションを実行しようとした人はいますか?

コントローラー/ビューを次のように作成できることを知っています:

package test.test.test.view
...
Lots of imports
...
class MvcRocks extends LiftView {
  def dispatch = { 
    case "rule" => ruleDispatch _
    case "bar" => barDispatch _
  }
  def barDispatch(): Box[NodeSeq] = {
        Full(<lift:embed what="/mvc_rucks/bar" />)
  }
}

そして、このコードは、次のように非表示になっている場合でも、(ブートで) メニューに追加するとアクセス可能になります。

val entries = Menu(Loc("Home", List("index"), "Home")) ::
List(Menu(Loc("MvcRock", List("mvc_rocks", "bar"), "Mvc really Rocks", Hidden)))
LiftRules.setSiteMap(SiteMap(entries:_*))

さて、もちろんこれでそうなります。メニューですべてのアクションを宣言し、各アクション(コントローラーごと)のケースを用意し、「ビュー」を開きます(/mvc_rucks/bar.htmlのファイルになります) )。

私の質問は、完全な mvc を実装する場合、すべてのロジックをアクション barDispatch に配置する必要があるということですが、これらの変数を HTML テンプレートにどのように送信しますか? また、どのように投稿/情報を取得しますか?

(html コードにリフト バインディングがある場合は、以前に MVC を実行した後でも、もちろんビュー ファーストとして機能することに注意してください)。

4

1 に答える 1

9

あなたの質問はLiftに固有のものではないので、Playframeworkをお勧めします。バージョン1.1はScala2.8をサポートしています。

Playframeworkは完全にMVCであり、素晴らしいテンプレートエンジンを備えており、Java/scalaから自由に選択できます。

そして私は言います:Playを使うために、あなたは「核科学者の知識」を必要としません。それを試してみてください!

于 2009-12-08T22:56:28.517 に答える