2009-06-22 22 views
8

¿Alguien ha intentado hacer una aplicación scala/lift usando MVC en lugar de ver primero?MVC en Lift/Scala

sé que se puede crear Controladores/puntos de vista 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 añade al menú (en el maletero), incluso si está escondido 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 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 haber hecho MVC anteriormente).

Respuesta

9

Dado que su pregunta no es específica de Lift, le recomendaría el Playframework. La versión 1.1 es compatible con Scala 2.8.

Playframework es totalmente MVC con un fantástico motor de plantilla y le permite elegir libremente entre java/scala.

Y yo digo: Para usar Play, no es necesario 'conocimiento científico nuclear'. ¡Intentalo!

+0

"Finalmente, un framework Java creado por desarrolladores web. Descubre una alternativa limpia a las hinchadas pilas empresariales de Java". - ¡el juego!" la página principal dice. Nunca supe que existe tal cosa y que siempre soñé. Muchas gracias, Paulo. – Ivan

+0

Algunos desarrolladores a veces olvidan que queremos simplicidad :) Jugar es una de las respuestas para eso. Estoy buscando algo aún más simple. Busque a JTornado en Github. Estoy realmente enfocado en eso. ¡Gracias! – paulosuzart