SSM项目整合第一步 注册

 SSM项目整合第一步  注册:

项目目录:

 一、数据库建表:

源码:

 1 SET FOREIGN_KEY_CHECKS=0;
 2 
 3 -- ----------------------------
 4 -- Table structure for t_user
 5 -- ----------------------------
 6 DROP TABLE IF EXISTS `t_user`;
 7 CREATE TABLE `t_user` (
 8   `user_id` int(11) NOT NULL AUTO_INCREMENT,
 9   `user_name` varchar(32) NOT NULL,
10   `user_pass` varchar(36) NOT NULL,
11   `user_tel` int(11) DEFAULT NULL,
12   `user_real_name` varchar(32) DEFAULT NULL,
13   PRIMARY KEY (`user_id`)
14 ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
15 
16 -- ----------------------------
17 -- Records of t_user
18 -- ----------------------------
19 INSERT INTO `t_user` VALUES ('1', '123', '123456', null, null);
20 INSERT INTO `t_user` VALUES ('2', 'Lucky', 'admin', '123', 'admin');
View Code

二、建立实体类映射字段:

后端实体类字段映射:

已下配置会将字段uesr_id  自动转换为userId  将_i 转换为大写I

 applicationContext.xml:

  <!-- 加载mybatis-config配置文件,里面设置别名 -->
         <property name="configLocation" value="classpath:mybatis-config.xml"/>

mybatis-config.xml:

1 <?xml version="1.0" encoding="UTF-8" ?>
2 <!DOCTYPE configuration
3         PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
4         "http://mybatis.org/dtd/mybatis-3-config.dtd">
5 <configuration>
6     <settings>
7         <setting name="mapUnderscoreToCamelCase" value="true"/>
8     </settings>
9 </configuration>

前端实体类字段映射:

 三、处理流程:

 

 

 

四、前端页面显示:

spring表头:

<%@taglib uri="http://www.springframework.org/tags/form" prefix="form" %>

spring表单:

 错误信息:

 1 <%@taglib uri="http://www.springframework.org/tags/form" prefix="form" %>
 2 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 3 <!-- saved from url=(0049)http://localhost:8080/HouseRent/page/register.jsp -->
 4 <HTML xmlns="http://www.w3.org/1999/xhtml">
 5 <HEAD><TITLE>布谷租房 - 用户注册</TITLE>
 6     <META content="text/html; charset=utf-8" http-equiv=Content-Type>
 7     <LINK
 8             rel=stylesheet type=text/css href="../css/style.css">
 9     <META name=GENERATOR content="MSHTML 8.00.7601.17514">
10 </HEAD>
11 <BODY>
12 <DIV id=header class=wrap>
13     <DIV id=logo><IMG src="../images/logo.gif"></DIV>
14 </DIV>
15 <DIV id=regLogin class=wrap>
16     <DIV class=dialog>
17         <DL class=clearfix>
18             <DT>新用户注册</DT>
19             <DD class=past>填写个人信息</DD>
20         </DL>
21         <DIV class=box>
22             <form:form action="/user/doreg" modelAttribute="userError" method="post">
23                 <DIV class=infos>
24                     <TABLE class=field>
25                         <TBODY>
26                         <TR>
27                             <TD class=field>用 户 名:</TD>
28                             <TD><INPUT class=text type=text name=name><form:errors path="name"></form:errors></TD>
29                         </TR>
30                         <TR>
31                             <TD class=field>密  码:</TD>
32                             <TD><INPUT class=text type=password name=password><form:errors path="password"></form:errors></TD>
33                         </TR>
34                         <TR>
35                             <TD class=field>确认密码:</TD>
36                             <TD><INPUT class=text type=password name=repassword></TD>
37                         </TR>
38                         <TR>
39                             <TD class=field>电  话:</TD>
40                             <TD><INPUT class=text type=text name=telephone><form:errors path="telephone"></form:errors></TD>
41                         </TR>
42                         <TR>
43                             <TD class=field>用户姓名:</TD>
44                             <TD><INPUT class=text type=text name=username></TD>
45                         </TR>
46                         </TBODY>
47                     </TABLE>
48                     <DIV class=buttons>
49                         <INPUT value=立即注册 type="submit">
50                     </DIV>
51                 </DIV>
52             </form:form>
53         </DIV>
54     </DIV>
55 </DIV>
56 <DIV id=footer class=wrap>
57     <DL>
58         <DT>布谷租房 © 2010 布谷租房 京ICP证1000001号</DT>
59         <DD>关于我们 · 联系方式 · 意见反馈 · 帮助中心</DD>
60     </DL>
61 </DIV>
62 </BODY>
63 </HTML>
regs.jsp

 如果页面没有css样式 此时处理静态文件才会显示:

1  <!--处理静态文件 -->
2     <mvc:resources location="/scripts/" mapping="/scripts/**"/>
3     <mvc:resources location="/css/" mapping="/css/**"/>
4     <mvc:resources location="/images/" mapping="/images/**"/>

 五、插入乱码解决:

WEB-INF/web.xml:

 1  <!-- 设置编码为UTF-8 -->
 2   <filter>
 3     <description>字符集过滤器</description>
 4     <filter-name>encodingFilter</filter-name>
 5     <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
 6     <init-param>
 7       <description>字符集编码</description>
 8       <param-name>encoding</param-name>
 9       <param-value>UTF-8</param-value>
10     </init-param>
11   </filter>
12   <filter-mapping>
13     <filter-name>encodingFilter</filter-name>
14     <url-pattern>/*</url-pattern>
15   </filter-mapping>

mysql.properties:

1 mysql.driverClassName=com.mysql.jdbc.Driver
2 mysql.url=jdbc:mysql://localhost:3310/house?useUnicode=true&characterEncoding=UTF-8
3 mysql.username=root
4 mysql.password=123456
 1 package com.etc.controller;
 2 
 3 import com.etc.Vo.UserVO;
 4 import com.etc.servise.UserService;
 5 import org.springframework.beans.factory.annotation.Autowired;
 6 import org.springframework.stereotype.Controller;
 7 import org.springframework.validation.BindingResult;
 8 import org.springframework.web.bind.annotation.ModelAttribute;
 9 import org.springframework.web.bind.annotation.RequestMapping;
10 
11 import javax.validation.Valid;
12 
13 @Controller
14 @RequestMapping("/user")
15 public class UserController {
16 
17     @Autowired
18     private UserService userService;
19 
20     @RequestMapping("/reg")
21     public String reg() {
22         return "regs";
23     }
24 
25     @RequestMapping("/doreg")
26     public String hello(@ModelAttribute("userError") @Valid UserVO userVO, BindingResult result){
27         if(result.hasErrors()){
28             return "regs";
29         }
30         userService.reg(userVO);
31         return "login";
32     }
33 }
UserControlle.java
 1 package com.etc.converter;
 2 
 3 import com.etc.Vo.UserVO;
 4 import com.etc.entity.User;
 5 
 6 public class UserConverter {
 7     public static User convert(UserVO userVO) {
 8         User user = new User();
 9         user.setUserName(userVO.getName());
10         user.setUserPass(userVO.getPassword());
11         user.setUserTel(userVO.getTelephone());
12         user.setUserRealName(userVO.getUsername());
13         return user;
14     }
15 }
UserConverter.java
1 package com.etc.dao;
2 
3 import com.etc.entity.User;
4 
5 public interface UserDAO {
6 
7     void reg(User user);
8 }
UserDAO
 1 package com.etc.entity;
 2 
 3 public class User {
 4     private int userId;
 5     private String userName;
 6     private String userPass;
 7     private String userTel;
 8     private String userRealName;
 9 
10     public User() {
11     }
12 
13     public User(int userId, String userName, String userPass, String userTel, String userRealName) {
14         this.userId = userId;
15         this.userName = userName;
16         this.userPass = userPass;
17         this.userTel = userTel;
18         this.userRealName = userRealName;
19     }
20 
21     @Override
22     public String toString() {
23         return "User{" +
24                 "userId=" + userId +
25                 ", userName='" + userName + '\'' +
26                 ", userPass='" + userPass + '\'' +
27                 ", userTel='" + userTel + '\'' +
28                 ", userRealName='" + userRealName + '\'' +
29                 '}';
30     }
31 
32     public int getUserId() {
33         return userId;
34     }
35 
36     public void setUserId(int userId) {
37         this.userId = userId;
38     }
39 
40     public String getUserName() {
41         return userName;
42     }
43 
44     public void setUserName(String userName) {
45         this.userName = userName;
46     }
47 
48     public String getUserPass() {
49         return userPass;
50     }
51 
52     public void setUserPass(String userPass) {
53         this.userPass = userPass;
54     }
55 
56     public String getUserTel() {
57         return userTel;
58     }
59 
60     public void setUserTel(String userTel) {
61         this.userTel = userTel;
62     }
63 
64     public String getUserRealName() {
65         return userRealName;
66     }
67 
68     public void setUserRealName(String userRealName) {
69         this.userRealName = userRealName;
70     }
71 }
User.java
 1 package com.etc.servise;
 2 
 3 import com.etc.Vo.UserVO;
 4 import com.etc.converter.UserConverter;
 5 import com.etc.dao.UserDAO;
 6 import com.etc.entity.User;
 7 import org.springframework.beans.factory.annotation.Autowired;
 8 import org.springframework.stereotype.Service;
 9 
10 @Service
11 public class UserService {
12 
13     @Autowired
14     private UserDAO userDAO;
15 
16     public void reg(UserVO userVO){
17         User user= UserConverter.convert(userVO);
18         userDAO.reg(user);
19     }
20 }
UserService.java
 1 package com.etc.Vo;
 2 
 3 import org.hibernate.validator.constraints.Length;
 4 import org.hibernate.validator.constraints.NotEmpty;
 5 
 6 import javax.validation.constraints.Pattern;
 7 
 8 public class UserVO {
 9     @NotEmpty(message = "用户名不能为空")
10     @Pattern(regexp = "^[a-zA-Z][a-zA-Z0-9]{3,15}$",message = "请输入3-15位账号,必须以字母开头")
11     private String name;
12     @NotEmpty(message = "用户名不能为空")
13     @Length(min = 8, max = 18, message = "密码必须在8到18位")
14     private String password;
15 
16     private String repassword;
17     @Pattern(regexp = "^1\\d{10}$",message ="请输入正确的手机号" )
18     private String telephone;
19 //    @DateTimeFormat(pattern = "yyyy-MM-dd")
20     private String username;
21 
22     @Override
23     public String toString() {
24         return "UserVO{" +
25                 "name='" + name + '\'' +
26                 ", password='" + password + '\'' +
27                 ", repassword='" + repassword + '\'' +
28                 ", telephone='" + telephone + '\'' +
29                 ", username='" + username + '\'' +
30                 '}';
31     }
32 
33     public UserVO() {
34     }
35 
36     public UserVO(String name, String password, String repassword, String telephone, String username) {
37         this.name = name;
38         this.password = password;
39         this.repassword = repassword;
40         this.telephone = telephone;
41         this.username = username;
42     }
43 
44     public String getName() {
45         return name;
46     }
47 
48     public void setName(String name) {
49         this.name = name;
50     }
51 
52     public String getPassword() {
53         return password;
54     }
55 
56     public void setPassword(String password) {
57         this.password = password;
58     }
59 
60     public String getRepassword() {
61         return repassword;
62     }
63 
64     public void setRepassword(String repassword) {
65         this.repassword = repassword;
66     }
67 
68     public String getTelephone() {
69         return telephone;
70     }
71 
72     public void setTelephone(String telephone) {
73         this.telephone = telephone;
74     }
75 
76     public String getUsername() {
77         return username;
78     }
79 
80     public void setUsername(String username) {
81         this.username = username;
82     }
83 }
UserVO.java
1 <?xml version="1.0" encoding="UTF-8" ?>
2 <!DOCTYPE configuration
3         PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
4         "http://mybatis.org/dtd/mybatis-3-config.dtd">
5 <configuration>
6     <settings>
7         <setting name="mapUnderscoreToCamelCase" value="true"/>
8     </settings>
9 </configuration>
mybatis-config.xml

猜你喜欢

转载自www.cnblogs.com/LiuOOP/p/11249339.html