需要为Blog添加 查看和发表评论的功能
1.创建查看功能
application.java中添加 show() 方法
public static void show(Long id) {
Post post = Post.findById(id);
render(post);
}
创建 app/views/Application/show.html
#{extends 'main.html' /}
#{set title:post.title /}
#{display post:post, as:'full' /}
在页面模板中添加链接
访问Blog
返回主页
2.创建路由规则
当前页面URL http://localhost:9000/application/show?id=3
是由 * /{controller}/{action} {controller}.{action} 这条规则解析得到的
在之前新创建Route
GET /posts/{id} Application.show
访问路径变为 http://localhost:9000/posts/3
更多路由语法参考: http://play-framework.herokuapp.com/zh/routes#syntax
3.添加页导航
Post类添加方法,PRevious()\next()
public Post previous() {
return Post.find("postedAt < ? order by postedAt desc", postedAt).first();
}
public Post next() {
return Post.find("postedAt > ? order by postedAt asc", postedAt).first();
}
show.html页面添加导航按钮
4.添加评论框
Application Controller添加方法postComment()
public static void postComment(Long postId, String author, String content) {
Post post = Post.findById(postId);
post.addComment(author, content);
show(postId);
}
修改show.html
5.添加验证,验证Author和Content非空
import play.data.validation.*;
public static void postComment(Long postId, @Required String author, @Required String content) {
Post post = Post.findById(postId);
if (validation.hasErrors()) {
render("Application/show.html", post);
}
post.addComment(author, content);
show(postId);
}
编辑form,显示错误
#{form @Application.postComment(post.id)}
#{ifErrors}
All fields are required!
6.优化客户提示
加载jquery的类库
修改Show.html
#{if Flash.success}
${flash.success}
添加Comment成功的提示
post.addComment(author, content);
flash.success("Thanks for posting %s", author);
添加路由
POST /posts/{postId}/comments Application.postComment
以上就是PlayFramework完整实现一个APP(六)的内容,更多相关内容请关注PHP中文网(www.php.cn)!