2009-06-22 22 views
8

Có ai đã cố gắng thực hiện một ứng dụng scala/lift bằng cách sử dụng MVC thay vì xem đầu tiên không?MVC trên thang máy/Scala

Tôi biết rằng bạn có thể tạo điều khiển/views như:

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" />) 
    } 
} 

Và đoạn mã này sẽ được truy cập nếu bạn thêm nó vào menu (trong cốp xe), ngay cả khi ẩn của nó như:

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

Bây giờ, tất nhiên điều này sẽ xảy ra, bạn khai báo mọi hành động trong menu, sau đó có trường hợp cho mỗi hành động (trên mỗi bộ điều khiển) và mở "view" (đó sẽ là một tệp trong/mvc_rucks) /bar.html).

Câu hỏi của tôi là, nếu bạn thực hiện một mvc đầy đủ, bạn sẽ cần phải đặt tất cả logic của mình trong thanh tác vụDispatch, nhưng làm cách nào bạn gửi các biến đó đến mẫu HTML? và bạn sẽ nhận được thông tin đăng/nhận như thế nào?

(Lưu ý rằng nếu mã html của bạn có các ràng buộc nâng, tất nhiên nó sẽ hoạt động như chế độ xem đầu tiên, ngay cả sau khi bạn đã thực hiện MVC trước đó).

Trả lời

9

Vì câu hỏi của bạn không cụ thể cho Nâng, tôi khuyên bạn nên Playframework. Phiên bản 1.1 hỗ trợ Scala 2.8.

Playframework hoàn toàn là MVC với công cụ tạo mẫu tuyệt vời và cho phép bạn chọn tự do giữa java/scala.

Và tôi nói: Để sử dụng Play, bạn không cần 'kiến thức khoa học hạt nhân'. Thử nó!

+0

"Cuối cùng là một khung công tác Java được tạo bởi các nhà phát triển web. Khám phá một giải pháp thay thế rõ ràng cho các ngăn xếp Java doanh nghiệp cồng kềnh". - vở kịch!" trang chính nói. Tôi chưa bao giờ biết một thứ như vậy tồn tại và luôn mơ ước. Cảm ơn rất nhiều, Paulo. – Ivan

+0

Một số nhà phát triển đôi khi quên chúng tôi muốn đơn giản :) Chơi là một trong những câu trả lời cho điều đó. Tôi đang tìm thứ gì đó đơn giản hơn. Tìm JTornado trên Github. Tôi thực sự tập trung vào điều đó. Cảm ơn! – paulosuzart

Các vấn đề liên quan