你的位置:首页 > Java教程

[Java教程]Play Framework 完整实现一个APP(七)


 

1.添加验证码

Application Controller添加captcha()

public static void captcha() {	Images.Captcha captcha = Images.captcha();	renderBinary(captcha);}

  

添加Route

GET   /captcha                Application.captcha

  

访问 http://localhost:9000/captcha

验证码图片已经实现了,现在需要做的是验证输入信息与验证码一致

修改captcha()方法

	public static void captcha(String id) {		Images.Captcha captcha = Images.captcha();		String code = captcha.getText("#E4EAFD");		Cache.set(id, code, "10mn");		renderBinary(captcha);	}

  

修改show()方法

public static void show(Long id) {  Post post = Post.findById(id);  String randomID = Codec.UUID();  render(post, randomID);}

  

修改show.html页面

在Comment下方添加验证码图片,和验证控件

  <p>    <label for="content">Your message: </label>    <textarea name="content" id="content">${params.content}</textarea>  </p>  <p>  	<label for="code">Please type the code below: </label>  	<img src="@{Application.catcha(randomId)}">  	<br />  	<input type="text" name="code" id="code" size="18" value="" />  	<input type="hidden" name="randomId" value="${randomId}" />  </p>  <p>    <input type="submit" value="Submit your comment" />  </p>

  

2.验证

修改postComment 方法

public static void postComment(			Long postId, 			@Required(message="Author is required") String author,			@Required(message="A message is required") String content,			@Required(message="Please type the code") String code,			String randomId) {	  Post post = Post.findById(postId);	  validation.equals(code, Cache.get(randomId)).message("Invalid code. Please type it again");	  	  if(validation.hasErrors()) {	  	 render("Application/show.html", post);	  }	  	  post.addComment(author, content);	  flash.success("Thanks for posting %s", author);	  Cache.delete(randomId);	  show(postId);}

  

修改show.html页面

  #{ifErrors}    <p >      ${errors[0]}    </p>  #{/ifErrors}

 

 

 

 

 

..