PlayFramework完整实现一个APP(七)

王朝学院·作者佚名  2016-08-27
窄屏简体版  字體: 小  |  中  |  大  |  超大  

1.添加验证码

applicationController添加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}

..

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航