模板之间的继承
Play 框架中可以使用 #{extends} 和 #{doLayout} 来实现模板之间的继承。模板的继承机制对于实现灵活的页面布局很有帮助。一个模板可以定义清楚页面的基本布局结构,其它模板可以继承此模板并添加具体的内容。这样就可以避免在不同模板中重复相同的页面元素。
在父模板中可以包含任意的内容。在需要由子模板填充的位置,使用 #{doLayout /} 进行声明即可。在子模板中通过 #{extends} 来声明所继承的模板。如 #{extends 'main.html'} 就声明继承自模板 main.html。当子模板被生成之后,将包含父模板中的内容。而子模板中只需要定义扩展的内容即可。
play框架发送邮件
email.setFrom(usermail);//发送者
email.addTo(sendto);//接收方
email.setSubject(title);//主题
email.setMsg(content);//内容
Mail.send(email);//发送邮件
(!email.matches("[\\w\\.\\-]+@([\\w\\-]+\\.)+[\\w\\-]+"))//此正则表达式可以用于判断邮箱格式是否正确,但不是判断邮箱是否存在的方法。如果要判断一个邮箱是否真实,我觉得比较可行的方法是注册的时候发送验证码到该邮箱,然后再根据该验证码进行验证,这样就可以判断邮箱的正确性。如果采用判断邮箱是否存在在特定服务器上,那么该邮箱有可能是荒废的或者是已经没有被使用很久的。
play在发送邮件的时候还有一点要注意,就是对application.conf文件的配置。
如下配置项:
# Default is to use a mock Mailer
mail.smtp=mock
mail.smtp=mock
这是默认的配置,如果采用此配置,那么play将模拟发送邮件的过程,即只在控制台中输出发送邮件的过程,如果想真正实现发送邮件,就必须把默认的配置去掉。即:
# Default is to use a mock Mailer
# mail.smtp=mock
# mail.smtp=mock
You didn't specify that, but you're testing it most probably in
DEV
mode. In such case smtp.host
inapplication.conf
is set to mock
, you need to change it.