发表于: 2018-03-26 23:23:47
2 517
今日完成:
1. Tiles框架编写两种注册界面和登陆界面,以及用户信息节目的框架
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE tiles-definitions PUBLIC
"-//Apache Software Foundation//DTD Tiles Configuration 3.0//EN"
"http://tiles.apache.org/dtds/tiles-config_3_0.dtd">
<tiles-definitions>
<!-- 主布局 -->
<definition name="layout" template="/WEB-INF/views/layout.jsp">
<put-attribute name="header" value="/WEB-INF/views/index_header.jsp"/>
<put-attribute name="footer" value="/WEB-INF/views/index_footer.jsp"/>
<put-list-attribute name="cssPathList">
<add-attribute value="/css/base.css"></add-attribute>
<add-attribute value="/css/main.css"></add-attribute>
</put-list-attribute>
</definition>
<!-- 主布局 -->
<!--index 项目-->
<definition name="tiles_index" extends="layout">
<put-attribute name="title" value="主页"/>
<put-attribute name="body" value="/WEB-INF/views/index_body.jsp"/>
</definition>
<!--sign_in 项目-->
<definition name="tiles_sign_in" extends="layout">
<put-attribute name="title" value="登陆"/>
<put-attribute name="body" value="/WEB-INF/views/index_body_sign_in.jsp"/>
</definition>
<!--tiles_sign_up_by_phone 项目-->
<definition name="tiles_sign_up_by_phone" extends="layout">
<put-attribute name="title" value="手机注册"/>
<put-attribute name="body" value="/WEB-INF/views/index_body_sign_up_by_phone.jsp"/>
</definition>
<!--tiles_sign_up_by_email 项目 -->
<definition name="tiles_sign_up_by_email" extends="layout">
<put-attribute name="title" value="邮箱注册"/>
<put-attribute name="body" value="/WEB-INF/views/index_body_sign_in.jsp"/>
</definition>
<!--sign_up 项目-->
</tiles-definitions>
页面设置
2. 编写一个手机注册使用的类似pojo的类
public class PhoneVerification {
private String phone;
private String password;
private String passwordAgain;
private String verificationCode;
public void setPhone(String phone){
this.phone = phone;
}
public String getPhone(){
return this.phone;
}
public void setPassword(String password){
this.password = password;
}
public String getPassword(){
return this.password;
}
public void setPasswordAgain(String passwordAgain){
this.passwordAgain = passwordAgain;
}
public String getPasswordAgain(){
return this.passwordAgain;
}
public void setVerificationCode(String verificationCode){
this.verificationCode = verificationCode;
}
public String getVerificationCode(){
return this.verificationCode;
}
3. 验证手机号码的正确性以及输入两次密码的正确性,预留一个接入API的位置
package com.wyq.taskSeven.verification;
import com.wyq.taskSeven.util.AccountValidatorUtil;
import java.util.HashMap;
import java.util.Map;
public class PhoneVerificationUtil {
public static boolean sendVerificationCode(PhoneVerification phoneVerification) {
Map<String, String> map = pullMap(phoneVerification);
boolean flag = baseVerification(map);
if(flag){
// 发送验证码
System.out.println("发送验证码");
flag = true;
}
return flag;
}
private static Map<String, String> pullMap(PhoneVerification phoneVerification) {
Map<String, String> map = new HashMap<String, String>();
String phone = phoneVerification.getPhone();
String password = phoneVerification.getPassword();
String passwordAgain = phoneVerification.getPasswordAgain();
System.out.println(phone);
map.put("phone", phone);
map.put("password", password);
map.put("passwordAgain", passwordAgain);
return map;
}
private static boolean baseVerification(Map<String, String> map) {
boolean flag = true;
if(!AccountValidatorUtil.isMobile(map.get("phone"))){
flag = false;
}
if(!AccountValidatorUtil.isPassword(map.get("password"))){
flag = false;
}
if(!(map.get("password").equals(map.get("passwordAgain")))){
flag = false;
}
return flag;
}
}
4. 未完成的通过手机注册的controller
@RequestMapping("/sign_up_by_phone")
public ModelAndView signUpByPhone(){
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("tiles_sign_up_by_phone");
return modelAndView;
}
@RequestMapping(value = "/sign_up_by_phone/send_verification_code", method = RequestMethod.POST)
public ModelAndView sendVerificationCode(@ModelAttribute("phoneVerification")PhoneVerification phoneVerification){
ModelAndView modelAndView = new ModelAndView();
boolean flag = true;
if(null == phoneVerification.getVerificationCode() || "" == phoneVerification.getVerificationCode()) {
flag = PhoneVerificationUtil.sendVerificationCode(phoneVerification);
return null;
}
return null;
}
明日计划:
1. 接入api,完成手机注册登录
2. 接入邮件功能
遇到的问题:
1. 所写的实现都是按照自己的思路修改的,很不规范,比如发送验证码成功的反馈如何实现,多个用户同时注册如何进行验证码的验证。单纯调用API实现功能比较容易,但是要整合在一起优化比较无从下手,效率很低。
收获:
1. 把任务7需要的项目框架整体搭建起来,下一步直接接入api
评论