代码之家  ›  专栏  ›  技术社区  ›  DFectuoso

电梯/Scala上的MVC

  •  8
  • DFectuoso  · 技术社区  · 15 年前

    我知道您可以将控制器/视图创建为:

    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:_*))
    

    现在,当然这将使它成为这样,您声明菜单中的每个操作,然后为每个操作(每个控制器)设置一个case,这将打开“视图”(即/mvc\u rucks中的一个文件)/条形图.html).

    我的问题是,如果你要实现一个完整的mvc,你需要把所有的逻辑放在actionbardispatch中,但是你怎么把这些变量发送到HTML模板呢?你将如何接收邮件/获取信息?

    (请注意,如果您的html代码具有提升绑定,那么它当然将首先充当视图,即使在您以前使用MVC之后也是如此)。

    1 回复  |  直到 8 年前
        1
  •  9
  •   paulosuzart    15 年前

    既然你的问题不是针对电梯的,我建议你 Playframework . 版本1.1支持Scala 2.8。

    Playframework完全是MVC,有一个很棒的模板引擎,允许您在java/scala之间自由选择。

    我说: