play手把手教你创建一个博客项目03.构建第一个页面_如何创建一个博客

2020-02-29 其他范文 下载本文

play手把手教你创建一个博客项目03.构建第一个页面由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“如何创建一个博客”。

03.构建第一个页面

之前,我们已经编写好了数据模型,是时候为应用程序创建第一个页面了。这个页面只显示当前发表的博文完整内容,同时显示之前发表的博文列表。下面是该页面结构示意图:

在启动时加载默认数据

事实上,在编写第一个页面之前,我们还需要做一些工作。在一个没有任何测试数据的页面上进行工作并不太好,你甚至不能进行任何测试。

为博客程序注入测试数据的一条途径就是在应用程序启动时加载一个固定文件。为了实现这个目的,我们将创建一个引导任务(Bootstrap Job)。一个play job 任务就是一在没有任何http请求的情况下执行一些特定工作,比如在应用程序启动时或指定时间间隔时使用CRON任务。

接下来,让我们创建/yabe/app/Bootstrap.java job文件,使用Fixtures加载一系列默认数据:

import play.*;import play.jobs.*;import play.test.*;

import models.*;

@OnApplicationStart public cla Bootstrap extends Job {

public void doJob(){ // 检查数据库是否为空 if(User.count()== 0){ Fixtures.loadModels(“initial-data.yml”);} } } 在这里,我们使用@OnApplicationStart来注释这个Job,用于告诉play我们打算在应用程序启动时同步运行这个任务。

事实上,在DEV和PROD模式下,这个任务的运行情况有所不同。在DEV模式下,play会等待第一个请求达到时才运行任务。因此这个任务会在第一个请求到达时才同步执行,也就是说,如果这个任务失败,你会在浏览器里看到错误消息。在PROD模式里,这个任务将会在应用程序启动时就执行(与play run命令同步),以防止应用程序在启动时发生错误。

你必须在yabe/conf/下创建一个initial-data.yml文件。当然,你也可以重用我们之前在data.yml里定义的内容。

博客主页

这次,我们将真正开始编写主页代码。

还记得程序的第一个页面是如何显示的吗?首先是在routes文件里指定/ URL 将调用controllers.Application.index()action方法,然后这个index()调用render()方法渲染/yabe/app/views/Application/index.html模板。我们将保留这些组件,但是我们会在其中添加代码来加载博文列表并显示。打开/yabe/app/controllers/Application.java控制器并修改index()action来加载博文列表:

package controllers;

import java.util.*;

import play.*;import play.mvc.*;

import models.*;

public cla Application extends Controller {

public static void index(){ Post frontPost = Post.find(“order by postedAt desc”).first();List olderPosts = Post.find(“order by postedAt desc”).from(1).fetch(10);render(frontPost, olderPosts);} } 看到我们是如何向render方法传递对象的吗?通过这种方式,我们就可以在模板里使用相同的名称来访问这些对象了。在上面的代码里,我们在模板里就可以直接使用变量frontPost和olderPosts。

打开/yabe/app/views/Application/index.html并修改,用于显示这些对象: #{extends 'main.html' /} #{set title:'Home' /}

#{if frontPost} ${frontPost.title} by ${frontPost.author.fullname} ${frontPost.postedAt.format('MMM dd')}  |  ${frontPost.comments.size()?: 'no'} comment${frontPost.comments.size().pluralize()} #{if frontPost.comments} , latest by ${frontPost.comments[-1].author} #{/if}

《play手把手教你创建一个博客项目03.构建第一个页面.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
play手把手教你创建一个博客项目03.构建第一个页面
点击下载文档
相关专题 如何创建一个博客 第一个 创建一个 手把手教你 如何创建一个博客 第一个 创建一个 手把手教你
[其他范文]相关推荐
    [其他范文]热门文章
      下载全文