Maison >Java >javaDidacticiel >PlayFramework implémente complètement une APP (6)

PlayFramework implémente complètement une APP (6)

黄舟
黄舟original
2016-12-23 16:41:421185parcourir

Besoin d'ajouter la fonction de visualisation et de commentaire au blog

1 Créez la fonction de visualisation

Ajoutez la méthode show() dans application.java <.>

public static void show(Long id) {

Post post = Post.findById(id);
render(post);
}

Créer app/views/Application/show.html

#{extends 'main.html' /}

#{set title:post.title /}

# {afficher la publication : publier, comme : 'complet' /}

 

Ajouter un lien dans le modèle de page

Visiter le blog

${_post.title}

Retour à la page d'accueil

${blogTitle}


 

2. Créer des règles de routage

URL de la page actuelle http://localhost:9000/application/show ?id=3

est analysé par la règle * /{controller}/{action} {controller}.{action}

a été nouvellement créé avant Route

GET / posts /{id}                                  Application.show


Le chemin d'accès devient http://localhost:9000/posts/3

 

Plus de référence sur la syntaxe de routage : http ://play-framework.herokuapp.com/zh/routes#syntax

3. Ajouter la navigation dans la page

Ajouter une méthode à la classe 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 Ajouter un bouton de navigation à la page .html




 

4. Ajouter une zone de commentaire

Application Controller ajoute la méthode postComment()

public static void postComment (Long postId, String author, String content ) {
Post post = Post.findById(postId);
post.addComment(author, content);

show(postId);

}

 

Modifier show.html


Publier un commentaire



#{form @Application.postComment(post .id)}
                                                                                                                                                                            ,, , "auteur" />
                                                              "content" id="content">

>

;

#{/form>


 

5. Ajoutez une vérification pour vérifier que l'auteur et le contenu ne sont pas vides

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(auteur, contenu);
show(postId);
} 

Modifier le formulaire, erreur affichée

#{form @Application.postComment(post.id)}

   #{ifErrors}
       


           Tous les champs sont obligatoires !


   #{/ifErrors}

   


       
       
   


   


       <étiquette pour ="content">Votre message :
       
       


       
   


#{/form}

  

6.优化客户提示

加载jquery的类库

 

修改Show.html

#{if Flash.success}
  

${flash.success}


#{/if}

#{afficher le post:post, as:'full' /}

  

添加Comment成功的提示

post.addComment(author, content);
flash.success("Merci d'avoir publié %s ", auteur);

  

添加路由

POST    /posts/{postId}/comments                Application.postComment

 以上L'application PlayFramework est basée sur l'application PHP. >