playframework 控制器与模板数据传递机制

来源:互联网 发布:少年犯之七人 知乎 编辑:程序博客网 时间:2024/05/30 05:41



playframework的控制器定义


 在playframework 2中,控制器被设计为一个scala object对象,该对象继承自play.api.mvc.Controller.

 控制器的的数据通过render(参数1,参数2...参数N)的方式传递到模板文件,该传递机制形似到java中的数组的
 定义,如

 Stirng array[]={"a","b","c"}


 因为这种控制器数据传递机制与传统Struts1,struts2,spring mvc都有所不同,很容易对从java转程序员造成误解。

 控制器示代码:


object AdView extends Controller {

  def list = Action {

    val adao=new AdSpiderInfo

    adao.show


     var acount= adao.count

    acount=1000

    println("#####acount#####"+acount)

    //被传递到模板中的代码

    Ok(views.html.adlist.render("AdSpider","{acount}",acount) )
  }


创建/views/adlist.scala.html模板文件,呈现数据:

在模板开始处,定义从控制器传递过来的参数

@(title: String)(content: String)(adcount:Long)


在HTML中嵌入要显示的数据,通过@xxx形式调用传入的数据,如@title将显示控制器代码中设置的值"AdSpider".

示例代码:

<!DOCTYPE html>

<html>
<head>
    <title>@title</title>
    <meta charset="UTF-8">
    <link rel="stylesheet" media="screen" href="@routes.Assets.at("stylesheets/main.css")">
    <link rel="shortcut icon" type="image/png" href="@routes.Assets.at("images/favicon.png")">
    <script src="@routes.Assets.at("javascripts/jquery-1.9.0.min.js")" type="text/javascript"></script>

        <style type="text/css">

        </style>
    </head>
    <body>

@adcount

</body>

</html>
0 0