play手把手教你创建一个博客项目04.显示并发表评论由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“手把手教你做项目”。
04.显示并发表评论
博客的主页已经搞定,接下来,我们将编写博文的详细内容页面。这个页面将显示当前博文的所有评论,页面还将包括一个用于发表新评论的窗体。
创建 ‘show’ action
为了显示博文的详细页面,我们需要在Application控制器里创建一个新的action方法,这个新的action叫做show(): public static void show(Long id){ Post post = Post.findById(id);render(post);} 你可以看到,这个action非常简单。我们在方法签名里声明了一个Long类型的id参数用于自动从http请求的id变量里得到id值。这个参数会从HTTP的请求字符串、URL路径或窗体里获得
如果我们试着从http请求里传递一个错误的id值时,id变量值将为null,这时play将自动添加一个验证错误秋errors容器(变量)里。
这个action将用/yabe/app/views/Application/show.html模板进行显示: #{extends 'main.html' /} #{set title:post.title /}
#{display post:post, as:'full' /} 由于我们在之前已经编写了display标签,因此在这个页面的编码就非常简单了。
为详细页面添加链接
在display标签里,我们让所有的链接为空(使用#)。是时候让这些链接指向Application.show action了。在play里,你可以很容易在一个模板里使用@{...}注释构建链接,这个语法使用了路由的“URL反向查找”功能,用于反向查找指定action的URL。
打开/yabe/app/views/tags/display.html标签并修改: „
${_post.title} „
刷新主页,单击博文标题以显示博文内容。非常好,但是这个页面缺少一个返回主页的链接。OK,让我们打开/yabe/app/views/main.html模板,完成标题的链接:
„
About this blog ${blogTitle} ${blogBaseline}