• 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}
    

    ..

  • 相关阅读:
    redis在centos7下安装(源码编译)
    Centos7之Gcc安装
    Jmeter工具之上传图片,上传音频文件接口
    什么是系统平均负载(Load average)
    sonar+Jenkins 构建代码质量自动化分析平台
    数据库主从相关配置参数说明
    现有数据库配置主从同步
    MySQL5.7多主一从(多源复制)同步配置
    MySQL5.7主从从配置
    MySQL5.7主从同步配置
  • 原文地址:https://www.cnblogs.com/alex09/p/4919616.html
Copyright © 2020-2023  润新知