MVC en Lift/Scala
model-view-controller (1)
Como tu pregunta no es específica de Lift, te recomendaría Playframework . La versión 1.1 es compatible con Scala 2.8.
Playframework es totalmente MVC con un fantástico motor de plantillas y te permite elegir libremente entre java / scala.
Y digo: para usar Play, no necesitas ''conocimiento científico nuclear'' . ¡Intentalo!
¿Alguien ha intentado hacer una aplicación scala / lift usando MVC en lugar de ver primero?
Sé que puede crear Controladores / vistas como:
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" />)
}
}
Y este código será accesible si lo agrega al menú (en el arranque), incluso si está oculto como:
val entries = Menu(Loc("Home", List("index"), "Home")) ::
List(Menu(Loc("MvcRock", List("mvc_rocks", "bar"), "Mvc really Rocks", Hidden)))
LiftRules.setSiteMap(SiteMap(entries:_*))
Ahora, por supuesto, esto hará que sea así, usted declara cada acción en el menú, luego tiene un caso para cada acción (por controlador) y eso abriría la "vista" (que sería un archivo en /mvc_rucks/bar.html )
Mi pregunta es, si implementas un mvc completo, necesitarías poner toda tu lógica en la barra de accionesDispatch, pero ¿cómo enviarías esas variables a la plantilla HTML? y ¿cómo recibirías información de publicación / obtención?
(Tenga en cuenta que si su código html tiene enlaces de elevación, por supuesto, actuará como vista primero, incluso después de que haya realizado MVC anteriormente).