使用开发工具和数据库
idea 、 mysql
数据库脚本(只创建一个简单的表,用于说明)
SET FOREIGN_KEY_CHECKS=0;
– Table structure for t_base_user
DROP TABLE IF EXISTS t_base_user
;
CREATE TABLE t_base_user
(
id
varchar(18) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
loginname
varchar(50) DEFAULT NULL,
PASSWORD
varchar(18) DEFAULT NULL,
username
varchar(18) DEFAULT NULL,
phone
varchar(18) DEFAULT NULL,
address
varchar(255) DEFAULT NULL,
isControl
varchar(255) NOT NULL COMMENT ‘0,表示允许通过。1 表示不允许通过’,
PRIMARY KEY (id
),
UNIQUE KEY loginname
(loginname
)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
– Records of t_base_user
INSERT INTO t_base_user
VALUES (‘1414001’, ‘lau’, ‘1234567’, ‘zhao’, ‘13645547256’, ‘南京江宁区’, ‘0’);
INSERT INTO t_base_user
VALUES (‘1414002’, ‘Jackie’, ‘1234567’, ‘liuzhao’, ‘17191182548’, ‘南京市雨花区’, ‘0’);
使用的jar包
pom.xml如下:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.lau</groupId>
<artifactId>IntegrationSystem</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<name>IntegrationSystem Maven Webapp</name>
<!-- FIXME change it to the project's website -->
<url>http://www.example.com</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<spring.version>4.1.4.RELEASE</spring.version>
<jackson.version>2.5.0</jackson.version>
</properties>
<dependencies>
<!--<dependency>
<groupId>org.junit</groupId>
<artifactId>junit</artifactId>
<version>4.7</version>
<scope>test</scope>
</dependency>-->
<dependency>
<groupId>aopalliance</groupId>
<artifactId>aopalliance</artifactId>
<version>1.0</version>
</dependency>
<!-- 分页助手 -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.1.2</version>
</dependency>
<!--代理-->
<dependency>
<groupId>cglib</groupId>
<artifactId>cglib</artifactId>
<version>3.2.5</version>
</dependency>
<dependency>
<groupId>asm</groupId>
<artifactId>asm</artifactId>
<version>3.3.1</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.8.0</version>
</dependency>
<dependency>
<groupId>cglib</groupId>
<artifactId>cglib</artifactId>
<version>3.2.5</version>
</dependency>
<!-- spring -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.version}</version>
<scope>test</scope>
</dependency>
<!-- mybatis 包 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.2.8</version>
</dependency>
<!--mybatis spring 插件 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.2.2</version>
</dependency>
<!-- mysql连接 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.6</version>
</dependency>
<!-- 数据源 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.0.12</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.8.4</version>
</dependency>
<!-- log4j -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.6.2</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.6.2</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.25</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.25</version>
<scope>test</scope>
</dependency>
<!-- servlet -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>3.0-alpha-1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<!-- json -->
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.9.13</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.3</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>${jackson.version}</version>
</dependency>
<!-- 文件上传 -->
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.4</version>
</dependency>
<!-- 导入dbcp的jar包,用来在applicationContext.xml中配置数据库 -->
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.2.2</version>
</dependency>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.2.2</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.2</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
<version>2.5.0</version>
</dependency>
</dependencies>
<build>
<finalName>IntegrationSystem</finalName>
<pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
<plugins>
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>3.1.0</version>
</plugin>
<!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging -->
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>3.0.2</version>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.1</version>
</plugin>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>3.2.2</version>
</plugin>
<plugin>
<artifactId>maven-install-plugin</artifactId>
<version>2.5.2</version>
</plugin>
<plugin>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.8.2</version>
</plugin>
</plugins>
</pluginManagement>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
</build>
</project>
项目工程目录设计(前期暂时这样,后面可能会考虑优化目录设计)
配置文件(重点)
Db.properties主要是用于配置连接数据库
dataSource.driverClass=com.mysql.jdbc.Driver
dataSource.jdbcUrl=jdbc:mysql://127.0.0.1:3306/lau
dataSource.user=******
dataSource.password=******
dataSource.maxPoolSize=20
dataSource.maxIdleTime=1000
dataSource.minPoolSize=6
dataSource.initialPoolSize=5
dataSource.maxWait=9999
log4j.properties主要用于配置日志记录输出格式(具体配置和学习使用,请自行研究学习)
log4j.rootLogger=INFO,Console,File
#定义日志输出目的地为控制台
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.Target=System.out
#可以灵活地指定日志输出格式,下面一行是指定具体的格式
log4j.appender.Console.layout = org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=[%c] - %m%n
#文件大小到达指定尺寸的时候产生一个新的文件
log4j.appender.File = org.apache.log4j.RollingFileAppender
#指定输出目录
log4j.appender.File.File = logs/ssm.log
#定义文件最大大小
log4j.appender.File.MaxFileSize = 10MB
#输出所有日志 ,如果换成DEBUG表示输出DEBUG以上级别日志
log4j.appender.File.Threshold = ALL
log4j.appender.File.layout = org.apache.log4j.PatternLayout
log4j.appender.File.layout.ConversionPattern =[%p] [%d{yyyy-MM-dd HH\:mm\:ss}][%c]%m%n
mybatis-config.xml(Mybatis的核心配置文件)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!-- 读取 对应的 映射文件-->
<!-- resource就是某一个映射文件的路径 -->
<mappers >
<mapper resource="com/lau/module/SqlMapper/mybatis/StudentMapper.xml"/>
<mapper resource="com/lau/module/SqlMapper/login/UserMapper.xml"></mapper>
</mappers>
</configuration>
applicationContext.xml(Spring的配置文件,在该文件中配置数据源、添加事务支持、开启事务注解、配置Mybatis工厂、进行Mapper代理开发以及指定扫描包)
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd">
<!-- 引入配置文件 -->
<bean id="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location" value="classpath:Db.properties" />
</bean>
<!--配置数据源-->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="${dataSource.driverClass}" />
<property name="url" value="${dataSource.jdbcUrl}" />
<property name="username" value="${dataSource.user}" />
<property name="password" value="${dataSource.password}" />
<!-- 初始化连接大小 -->
<property name="initialSize" value="${dataSource.initialPoolSize}"></property>
<!-- 连接池最大数量 -->
<property name="maxActive" value="${dataSource.maxPoolSize}"></property>
<!-- 连接池最大空闲 -->
<property name="maxIdle" value="${dataSource.maxIdleTime}"></property>
<!-- 连接池最小空闲 -->
<property name="minIdle" value="${dataSource.minPoolSize}"></property>
<!-- 获取连接最大等待时间 -->
<property name="maxWait" value="${dataSource.maxWait}"></property>
</bean>
<!--添加事务支持-->
<bean id ="txManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"></property>
</bean>
<!--开启事务注解-->
<tx:annotation-driven transaction-manager="txManager"/>
<!--配置Mybatis工厂,同时指定数据源,并与mybatis完美结合-->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"></property>
<!--configLocation的属性值为mybatis的核心配置文件 mybatis-config.xml-->
<property name="configLocation" value="classpath:mybatis-config.xml"></property>
</bean>
<!--在会话工厂中取出SqlSessionTemplate这个对象-->
<bean id="sqlsession" class="org.mybatis.spring.SqlSessionTemplate">
<constructor-arg ref="sqlSessionFactory" />
</bean>
<!--Mapper代理开发,使用Spring自动扫描Mybatis的接口并装配
(Spring将指定包中的所有被@Mapper注解标注的接口自动装配为Mybatis的映射接口)-->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<!--mybatis-spring 组件的扫描器-->
<property name="basePackage" value="com.lau.module"></property>
</bean>
<!--指定需要扫描的包(包括子包),使注解生效-->
<context:component-scan base-package="com.lau.module"></context:component-scan>
</beans>
springmvc-servlet.xml(该配置文件放在WEB-INF目录下面与web.xml文件目录同级)
SpringMVC的核心配置文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd">
<!--使用扫描机制配置扫描包 -->
<context:component-scan base-package="com.lau.module.*"></context:component-scan>
<!--配置视图解析器-->
<bean id="internalResourceViewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!--前缀-->
<property name="prefix" value="/WEB-INF/jsp/"></property>
<!--后缀-->
<property name="suffix" value=".jsp" />
</bean>
<!-- REST MVC -->
<mvc:annotation-driven content-negotiation-manager="contentNegotiationManager">
<mvc:message-converters>
<bean id="jackson2HttpMessageConverter"
class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<!--<value>text/html;charset=UTF-8</value>-->
<value>application/json;charset=UTF-8</value>
<!--<value>application/xml;charset-UTF-8</value>-->
</list>
</property>
</bean>
<bean id="stringHttpMessageConverter"
class="org.springframework.http.converter.StringHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<!--<value>text/plain;charset=UTF-8</value>-->
<!--<value>text/html;charset=UTF-8</value>-->
<bean class="org.springframework.http.MediaType">
<constructor-arg index="0" value="text" />
<constructor-arg index="1" value="plain" />
<constructor-arg index="2" value="UTF-8" />
</bean>
</list>
</property>
</bean>
<bean id="formHttpMessageConverter"
class="org.springframework.http.converter.FormHttpMessageConverter"/>
<!--<bean id="marshallingConverter"-->
<!--class="org.springframework.http.converter.xml.MarshallingHttpMessageConverter"/>-->
</mvc:message-converters>
</mvc:annotation-driven>
<bean id="contentNegotiationManager" class="org.springframework.web.accept.ContentNegotiationManagerFactoryBean">
<property name="favorPathExtension" value="false" />
<property name="favorParameter" value="false" />
<property name="ignoreAcceptHeader" value="false" />
<property name="mediaTypes" >
<value>
html=text/html
json=application/json
</value>
</property>
</bean>
<!--配置静态资源加载-->
<mvc:resources mapping="/image/**" location="/image/"/>
<mvc:resources mapping="/JS/**" location="/JS/"/>
<mvc:resources mapping="/CSS/**" location="/CSS/"/>
</beans>
web.xml配置文件
WEB-INF目录下创建,在该文件中实例化ApplicationContext容器、启动Spring容器、配置前端控制器DispatcherServlet以及字符编码过滤器
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_1.xsd">
<!--实例化ApplicationContext容器-->
<context-param>
<!--加载applicationContext容器-->
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
<!--指定以ContextLoaderListener方式启动Spring容器-->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!--配置DispatcherServlet-->
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<!--避免中文乱码-->
<filter>
<filter-name>characterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>characterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>/WEB-INF/jsp/login.jsp</welcome-file>
</welcome-file-list>
</web-app>
直接上代码(login目录下的,这里并没有实现登陆,只是用这个测试工程搭建是否ok,后期更新会实现登陆功能)
domain层代码(页面领域对象)
package com.lau.module.login.domain;
/**
* @Author lau
* @Description TODO
* @Date 18:47 2019/5/12
* @Param $param
* @return
**/
public class UserDomain {
//编号
private String id;
//登陆用户名
private String loginame;
//用户密码
private String passWord;
//持有者
private String userName;
//联系方式
private String phone;
//地址
private String address;
//是否禁用 0 表示不禁用 ; 1 表示禁用
private String isControl ;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getLoginame() {
return loginame;
}
public void setLoginame(String loginame) {
this.loginame = loginame;
}
public String getPassWord() {
return passWord;
}
public void setPassWord(String passWord) {
this.passWord = passWord;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String getIsControl() {
return isControl;
}
public void setIsControl(String isControl) {
this.isControl = isControl;
}
}
Dao层代码:
package com.lau.module.login.dao;
import com.lau.module.login.domain.UserDomain;
import org.mybatis.spring.annotation.MapperScan;
import java.util.List;
/**
* @Author lau
* @Description TODO
* @Date 22:53 2019/5/13
* @Param $param
* @return
**/
@MapperScan
public interface UserDomainDao {
List<UserDomain> selectUserByUname(UserDomain uobj);
}
service层代码:
package com.lau.module.login.service;
import com.lau.module.login.domain.UserDomain;
import java.util.List;
/**
* @Author lau
* @Description TODO
* @Date 22:53 2019/5/13
* @Param $param
* @return
**/
public interface UserService {
List<UserDomain> selectUserByUname(UserDomain uobj);
}
package com.lau.module.login.service.impl;
import com.lau.module.login.dao.UserDomainDao;
import com.lau.module.login.domain.UserDomain;
import com.lau.module.login.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @ClassName UserServiceImpl
* @Description TODO
* @Author l_zha
* @Date 19:52
* @Version 1.0
**/
@Service("UserService")
public class UserServiceImpl implements UserService {
@Autowired
private UserDomainDao userDao;
@Override
public List<UserDomain> selectUserByUname(UserDomain uobj) {
return userDao.selectUserByUname(uobj);
}
}
action层
package com.lau.module.login.action;
import com.lau.module.login.dao.UserDomainDao;
import com.lau.module.login.domain.UserDomain;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.List;
/**
* @ClassName UserController
* @Description TODO
* @Author l_zha
* @Date 19:55
* @Version 1.0
**/
@Controller
@RequestMapping(value = "/userController")
public class UserController {
@Autowired
private UserDomainDao userDao ;
@RequestMapping(value = "/select",method = RequestMethod.POST)
public String Select(UserDomain uobj, Model model)
{
uobj.setLoginame("jackie");
uobj.setPassWord("1234567");
List<UserDomain> userDomainsList = userDao.selectUserByUname(uobj);
model.addAttribute("userList", userDomainsList);
return "userList";
}
@ResponseBody
@RequestMapping(value = "/select2",method = RequestMethod.POST)
public String rebackTest()
{
return "strBackInfo";
}
}
sql映射文件UserMapper.xml(mybatis高级查询语法后期更新)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.lau.module.login.dao.UserDomainDao">
<select id="selectUserByUname" parameterType="com.lau.module.login.domain.UserDomain" resultType="com.lau.module.login.domain.UserDomain" >
SELECT
*
FROM
t_base_user t
WHERE 1=1
</select>
</mapper>
login.jsp(界面代码只是参考,具体引用的样式代码和图片资源就不提供了)
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta charset="UTF-8">
<title>loginPage</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="">
<meta name="author" content="">
<link rel="stylesheet" href="../../CSS/style.css">
<link rel="stylesheet" href="../../CSS/login.css">
</head>
<body>
<div style="width:100%;height: 100%; background-image:url('../../image/4.jpg')">
<div class="page-container">
<form id="form" action="${pageContext.request.contextPath }/userController/select" method="post">
<label for="username" style="background-image: url('../../image/username.png')"> </label>
<input type="text" id="username" name="username" class="username" placeholder="UserName">
<div id="user_error" class="error"><span>+</span></div>
<label for="password" style="background-image: url('../../image/pwd.png')"> </label>
<input type="password" id="password" name="password" class="password" placeholder="password">
<div id="pwd_error" class="error"><span>+</span></div>
<!-- <button id="login" type="submit">登录</button> -->
<input id="login" type="submit" value="登录" />
</form>
</div>
</div>
<!-- Javascript -->
<script src="../../JS/jquery-1.8.2.min.js"></script>
<script src="../../JS/alert.js"></script>
<script src="../../JS/login.js"></script>
</body>
</html>
userList.jsp
<%--
Created by IntelliJ IDEA.
User: l_zha
Date: 2019/5/12
Time: 20:05
To change this template use File | Settings | File Templates.
--%>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>测试</title>
</head>
<body>
用户信息<br>
<c:forEach items="${userList}" var="user">
${user.id}
${user.loginame}
${user.phone}
${user.address}
${user.userName}<br>
</c:forEach>
</body>
</html>
界面效果图:
遇到的问题
1.资源加载不到?
查询相关资料后,了解到需要将项目的资源配置在pom.xml中,上面的pom.xml文件中加入…顺利解决问题
2.springMVC报WARNING: No mapping found for HTTP request with URI [/userController/select] in DispatcherServle
可能导致这种情况发生的原因有多种情况,网上也有许多相关方面的说明,我这里主要是web.xml中配置的原因,在查阅相关资料后吗,在*.servlet.xml中添加如下代码顺利解决此问题。
<!-- REST MVC -->
<mvc:annotation-driven content-negotiation-manager="contentNegotiationManager">
<mvc:message-converters>
<bean id="jackson2HttpMessageConverter"
class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<!--<value>text/html;charset=UTF-8</value>-->
<value>application/json;charset=UTF-8</value>
<!--<value>application/xml;charset-UTF-8</value>-->
</list>
</property>
</bean>
<bean id="stringHttpMessageConverter"
class="org.springframework.http.converter.StringHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<!--<value>text/plain;charset=UTF-8</value>-->
<!--<value>text/html;charset=UTF-8</value>-->
<bean class="org.springframework.http.MediaType">
<constructor-arg index="0" value="text" />
<constructor-arg index="1" value="plain" />
<constructor-arg index="2" value="UTF-8" />
</bean>
</list>
</property>
</bean>
<bean id="formHttpMessageConverter"
class="org.springframework.http.converter.FormHttpMessageConverter"/>
<!--<bean id="marshallingConverter"-->
<!--class="org.springframework.http.converter.xml.MarshallingHttpMessageConverter"/>-->
</mvc:message-converters>
</mvc:annotation-driven>
<bean id="contentNegotiationManager" class="org.springframework.web.accept.ContentNegotiationManagerFactoryBean">
<property name="favorPathExtension" value="false" />
<property name="favorParameter" value="false" />
<property name="ignoreAcceptHeader" value="false" />
<property name="mediaTypes" >
<value>
html=text/html
json=application/json
</value>
</property>
</bean>
3.需要注意的是在写sql映射文件时,sql中相关字段的名称需要和domain中的页面领域对象属性保持一致,否则会报Type handler was null on parameter mapping for property …
由于对框架和maven的项目掌握的不是很厉害,这里是自主学习搭建的框架,后期自己会在这个框架上做相应的研究学习