发表于: 2018-03-26 23:23:47

2 514


今日完成:

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



返回列表 返回列表
评论

    分享到