Book Image

Lift Application Development Cookbook

By : Gilberto Tadeu Garcia Jun
Book Image

Lift Application Development Cookbook

By: Gilberto Tadeu Garcia Jun

Overview of this book

Developing secure web applications is one of the most important tasks developers have to deal with. With Lift, it is easy to create solid and formidable web applications as it is the most secure web framework available today. The View-First approach and being able to handle things as purely data transformation, makes working with Lift an exciting task. "Lift Application Development Cookbook" teaches you how to build web applications using this amazing framework. The book moves gradually, starting with the basics (starting a new project, submitting a form, and so on) before covering more advanced topics such as building a REST API and integrating your application with other technologies and applications. "Lift Application Development Cookbook" takes you on a journey of creating secure web applications. Step-by-step instructions help you understand how things work and how various elements relate to each other. You'll learn different ways to process a form, build dynamic HTML pages, and create an API using REST. You'll also learn how to work with relational and NoSQL databases and how to integrate your application with other technologies as well as with third-part applications such as Gmail and Facebook. By the end of the book, you will be able to understand how Lift works and be able to build web applications using this amazing and exciting framework.
Table of Contents (15 chapters)
Lift Application Development Cookbook
Credits
About the Author
About the Reviewers
www.PacktPub.com
Preface
Index

Dynamic menu rendering


Menus are an important part of an application. They show a hierarchical structure and how the application is organized. Users will use them to navigate through the application.

Lift does offer a good built-in snippet for creating menus, as I briefly said before. In this recipe, I'll show you how to use this snippet to create complex menu structures, and how to render them with fine-grained control.

Getting ready

Create a new project and add the following code in the Boot class to create the SiteMap:

Val isAdmin_? = If(() => {
  S.param("admin").flatMap(asBoolean).openOr(false)
  }, () => RedirectWithState("/", MessageState(
  "Authorized personnel only" -> NoticeType.Warning))
)
val entries = List(
  Menu.i("Home") / "index" >> LocGroup("content"), // the simple way to declare a menu

  Menu("Admin") / "admin" >> Hidden
  submenus(
    Menu(Loc("List", List("list"), "List Contacts", isAdmin_?, LocGroup("admin"))),
    Menu(Loc("Create", List("create...