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 class="error">
            ${errors[0]}
        </p>
    #{/ifErrors}

 

 

 

 

 

..

posted on 2015-10-29 11:21  alex_cool  阅读(487)  评论(0编辑  收藏  举报