SSM(Spring、SpringMVC和Mybatis)+Mysql/Oracle 是作为后台的搭建的主要框架,现在主要的常见的开发集成工具有eclipse和IDEA,为了避免配置繁琐的jar包,我们使用eclipse创建Maven工程 。
Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。 简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。
Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring MVC 分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。
MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。MyBatis是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAO)MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和 Java 的POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。
0.配置项目web.xml
新建项目的web.xml文件可能是2.3版本的,如下:
但我们通常需要的是3.0版本的
我们需要修改.setting的配置文件
将里面的1.5配置成1.6或者更高(我配置的是1.8)
配置完成后,项目->右键->properties->Project facets,看到以图表示配置成功
1.maven项目是应该有
src/main/resources
src/main/java
src/test/java
这几个Source Folder的,我们新建的项目却只有src/main/resources一个文件夹,当我们右键->new-> source folder时,输入src/main/java时却提示已存在.但是目录中并没有显示这个文件夹,我们右键->build path->configure build path->sources,会发现这两个文件夹其实已经建好了,但显示的红叉,后面标注着missing.
此时我们再切回libraries,选中JRE System library,点击edit
选择workspace default JRE,点击finish,再点击OK
此时我们会神奇的发现,那两个文件夹又显示出来了(不知道为什莫)
pom.xml
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0modelVersion>
<groupId>com.wmjgroupId>
<artifactId>angularDemoartifactId>
<packaging>warpackaging>
<version>0.0.1-SNAPSHOTversion>
<name>angularDemo Maven Webappname>
<url>http://maven.apache.orgurl>
<properties>
<spring.version>4.0.2.RELEASEspring.version>
<mybatis.version>3.2.6mybatis.version>
<slf4j.version>1.7.7slf4j.version>
<log4j.version>1.2.17log4j.version>
properties>
<dependencies>
<dependency>
<groupId>junitgroupId>
<artifactId>junitartifactId>
<version>4.11version>
<scope>testscope>
dependency>
<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-coreartifactId>
<version>${spring.version}version>
dependency>
<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-webartifactId>
<version>${spring.version}version>
dependency>
<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-oxmartifactId>
<version>${spring.version}version>
dependency>
<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-txartifactId>
<version>${spring.version}version>
dependency>
<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-jdbcartifactId>
<version>${spring.version}version>
dependency>
<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-webmvcartifactId>
<version>${spring.version}version>
dependency>
<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-aopartifactId>
<version>${spring.version}version>
dependency>
<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-context-supportartifactId>
<version>${spring.version}version>
dependency>
<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-testartifactId>
<version>${spring.version}version>
dependency>
<dependency>
<groupId>org.mybatisgroupId>
<artifactId>mybatisartifactId>
<version>${mybatis.version}version>
dependency>
<dependency>
<groupId>org.mybatisgroupId>
<artifactId>mybatis-springartifactId>
<version>1.2.2version>
dependency>
<dependency>
<groupId>javaxgroupId>
<artifactId>javaee-apiartifactId>
<scope>providedscope>
<version>7.0version>
dependency>
<dependency>
<groupId>mysqlgroupId>
<artifactId>mysql-connector-javaartifactId>
<version>5.1.30version>
dependency>
<dependency>
<groupId>commons-dbcpgroupId>
<artifactId>commons-dbcpartifactId>
<version>1.2.2version>
dependency>
<dependency>
<groupId>jstlgroupId>
<artifactId>jstlartifactId>
<version>1.2version>
dependency>
<dependency>
<groupId>log4jgroupId>
<artifactId>log4jartifactId>
<version>${log4j.version}version>
dependency>
<dependency>
<groupId>com.alibabagroupId>
<artifactId>fastjsonartifactId>
<version>1.1.41version>
dependency>
<dependency>
<groupId>javax.servletgroupId>
<artifactId>javax.servlet-apiartifactId>
<version>3.0.1version>
<scope>providedscope>
dependency>
<dependency>
<groupId>org.slf4jgroupId>
<artifactId>slf4j-apiartifactId>
<version>${slf4j.version}version>
dependency>
<dependency>
<groupId>org.slf4jgroupId>
<artifactId>slf4j-log4j12artifactId>
<version>${slf4j.version}version>
dependency>
<dependency>
<groupId>org.codehaus.jacksongroupId>
<artifactId>jackson-mapper-aslartifactId>
<version>1.9.13version>
dependency>
<dependency>
<groupId>commons-fileuploadgroupId>
<artifactId>commons-fileuploadartifactId>
<version>1.3.1version>
dependency>
<dependency>
<groupId>commons-iogroupId>
<artifactId>commons-ioartifactId>
<version>2.4version>
dependency>
<dependency>
<groupId>commons-codecgroupId>
<artifactId>commons-codecartifactId>
<version>1.9version>
dependency>
<dependency>
<groupId>net.sf.json-libgroupId>
<artifactId>json-libartifactId>
<version>2.4version>
<classifier>jdk15classifier>
dependency>
dependencies>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.tomcat.mavengroupId>
<artifactId>tomcat7-maven-pluginartifactId>
<version>2.2version>
<configuration>
<port>9090port>
<path>/angularDemopath>
<uriEncoding>UTF-8uriEncoding>
<finalName>angularDemofinalName>
<server>tomcat7server>
configuration>
plugin>
plugins>
pluginManagement>
<resources>
<resource>
<directory>src/main/javadirectory>
<includes>
<include>**/*.propertiesinclude>
<include>**/*.xmlinclude>
includes>
<filtering>falsefiltering>
resource>
resources>
<finalName>angularDemofinalName>
build>
project>
所有需要的JAR包都引入以后,首先进行Spring与MyBatis的整合
5.1建立JDBC属性文件
jdbc.properties(文件编码修改为utf-8)
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/demo
username=root
password=wmj
initialSize=0
maxActive=20
maxIdle=20
minIdle=1
maxWait=60000
5.1 建立spring-mybatis.xml配置文件
这个文件就是用来完成spring和mybatis的整合的。这里面也没多少行配置,主要的就是自动扫描,自动注入,配置数据库。
代码
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.1.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">
<context:component-scan base-package="com.wmj.SSM" />
<bean id="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location" value="classpath:jdbc.properties" />
bean>
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="${driver}" />
<property name="url" value="${url}" />
<property name="username" value="${username}" />
<property name="password" value="${password}" />
<property name="initialSize" value="${initialSize}">property>
<property name="maxActive" value="${maxActive}">property>
<property name="maxIdle" value="${maxIdle}">property>
<property name="minIdle" value="${minIdle}">property>
<property name="maxWait" value="${maxWait}">property>
bean>
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="mapperLocations" value="classpath:com/wmj/SSM/**/*.xml">property>
bean>
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.wmj.SSM.Dao" />
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory">property>
bean>
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
bean>
beans>
5.3、Log4j的配置
log4j.properties 为了方便调试,一般都会使用日志来输出信息,Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件,甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。
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
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
上面已经完成了2大框架的整合,SpringMVC的配置文件单独放,然后在web.xml中配置整合。
6.1配置spring-mvc.xml
配置里面的注释也很详细,在此就不说了,主要是自动扫描控制器,视图模式,注解的启动这三个。
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.1.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">
<context:component-scan base-package="com.wmj.SSM" />
<bean id="mappingJacksonHttpMessageConverter"
class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>text/html;charset=UTF-8value>
list>
property>
bean>
<bean
class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="messageConverters">
<list>
<ref bean="mappingJacksonHttpMessageConverter" />
list>
property>
bean>
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/">property>
<property name="suffix" value="">property>
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView">property>
bean>
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="defaultEncoding" value="utf-8" />
<property name="maxUploadSize" value="10485760000" />
<property name="maxInMemorySize" value="40960" />
bean>
<mvc:default-servlet-handler/>
<mvc:annotation-driven />
beans>
6.2在web.xml中进行整合
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
<display-name>Archetype Created Web Applicationdisplay-name>
<context-param>
<param-name>contextConfigLocationparam-name>
<param-value>classpath:spring-mybatis.xmlparam-value>
context-param>
<filter>
<filter-name>encodingFilterfilter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilterfilter-class>
<async-supported>trueasync-supported>
<init-param>
<param-name>encodingparam-name>
<param-value>UTF-8param-value>
init-param>
filter>
<filter-mapping>
<filter-name>encodingFilterfilter-name>
<url-pattern>/*url-pattern>
filter-mapping>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListenerlistener-class>
listener>
<listener>
<listener-class>org.springframework.web.util.IntrospectorCleanupListenerlistener-class>
listener>
<servlet>
<servlet-name>SpringMVCservlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServletservlet-class>
<init-param>
<param-name>contextConfigLocationparam-name>
<param-value>classpath:spring-mvc.xmlparam-value>
init-param>
<load-on-startup>1load-on-startup>
<async-supported>trueasync-supported>
servlet>
<servlet-mapping>
<servlet-name>SpringMVCservlet-name>
<url-pattern>/url-pattern>
servlet-mapping>
<welcome-file-list>
<welcome-file>/index.htmlwelcome-file>
welcome-file-list>
<session-config>
<session-timeout>15session-timeout>
session-config>
<error-page>
<error-code>404error-code>
<location>/location>
error-page>
web-app>
7.1 在Pojo中建立实体类 studentInfo.java
public class studentInfo {
private Integer stuNum;
private String stuName;
private Integer stuAge;
public Integer getStuAge() {
return stuAge;
}
public void setStuAge(Integer stuAge) {
this.stuAge = stuAge;
}
private String stuMajor;
public Integer getStuNum() {
return stuNum;
}
public void setStuNum(Integer stuNum) {
this.stuNum = stuNum;
}
public String getStuName() {
return stuName;
}
public void setStuName(String stuName) {
this.stuName = stuName;
}
public String getStuMajor() {
return stuMajor;
}
public void setStuMajor(String stuMajor) {
this.stuMajor = stuMajor;
}
}
7.2在持久层中Dao文件夹建立studentInfoDao.java
import java.util.List;
import com.wmj.SSM.Pojo.studentInfo;
public interface studentInfoDao {
//获取所有学生信息
List getAllStudentInfo();
//根据学号获取学生信息并返回list
List getStudentInfoByNumReturnList(int stuNum);
//根据学号获取学生信息
studentInfo getStudentInfoByNum(Integer stuNum);
//根据姓名获取学生信息
studentInfo getStudentInfoByName(String stuName);
//根据学号获取学生信息
studentInfo getStudentInfoByMajor(String stuMajor);
//修改学生信息
int updateStudentInfo(studentInfo stuInfo);
//添加学生信息
int addStudentInfo(studentInfo stuInfo);
//根据学号删除学生信息
int deleteStudentInfo(Integer num);
}
7.3在Mapper文件下新建stuInfoMapper.xml 与数据库交互
"1.0" encoding="UTF-8" ?>
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
namespace="com.wmj.SSM.Dao.studentInfoDao" >
"stuResultMap" type="com.wmj.SSM.Pojo.studentInfo" >
"stuNum" property="stuNum" jdbcType="INTEGER" />
"stuName" property="stuName" jdbcType="VARCHAR" />
"stuAge" property="stuAge" jdbcType="INTEGER" />
"stuMajor" property="stuMajor" jdbcType="VARCHAR" />
<select id="getAllStudentInfo" parameterType="java.lang.Integer" resultMap="stuResultMap">
select stuNum,stuName,stuAge,stuMajor from stu_info
select>
<select id="getStudentInfoByNumReturnList" parameterType="java.lang.Integer" resultMap="stuResultMap">
select stuNum,stuName,stuAge,stuMajor from stu_info where stuNum = #{stuNum}
select>
<select id="getStudentInfoByNum" parameterType="java.lang.Integer" resultMap="stuResultMap">
select stuNum,stuName,stuAge,stuMajor from stu_info where stuNum = #{stuNum}
select>
<select id="getStudentInfoByName" parameterType="string" resultMap="stuResultMap">
select stuNum,stuName,stuAge,stuMajor from stu_info where stuName = #{stuName}
select>
<select id="getStudentInfoByMajor" parameterType="string" resultMap="stuResultMap">
select stuNum,stuName,stuAge,stuMajor from stu_info where stuMajor = #{stuMajor}
select>
"updateStudentInfo" parameterType="com.wmj.SSM.Pojo.studentInfo">
update stu_info
<set >
<if test="stuNum != null" >
stuNum = #{stuNum},
if>
<if test="stuName != null" >
stuName = #{stuName},
if>
<if test="stuAge != null" >
stuAge = #{stuAge},
if>
<if test="stuMajor != null" >
stuMajor = #{stuMajor},
if>
set>
where stuNum = #{stuNum}
"addStudentInfo" parameterType="com.wmj.SSM.Pojo.studentInfo" >
insert into stu_info values (#{stuNum}, #{stuName}, #{stuAge}, #{stuMajor})
"deleteStudentInfo" parameterType="java.lang.Integer" >
delete from stu_info
where stuNum = #{stuNum}
7.4在service中新建studentInfoService.java 声明服务层接口
import java.util.List;
import com.wmj.SSM.Pojo.studentInfo;;
public interface studentInfoService {
//获取所有学生信息
public List getAllStudentInfo();
//根据学号获取学生信息,返回List
public List getStudentInfoByNumReturnList(int num);
//根据学号获取学生信息
public studentInfo getStudentInfoByNum(Integer num);
//根据姓名获取学生信息
public studentInfo getStudentInfoByName(String name);
//根据专业获取学生信息
public studentInfo getStudentInfoByMajor(String major);
//修改学生信息
int updateStudentInfo(studentInfo stuInfo);
//添加学生信息
int addStudentInfo(studentInfo stuInfo);
//根据学号删除学生信息
int deleteStudentInfo(Integer num);
}
7.5在实现层新建impl文件夹,作为service接口的实现层,新建studentInfoImpl.java
package com.wmj.SSM.Service.impl;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import com.wmj.SSM.Dao.studentInfoDao;
import com.wmj.SSM.Pojo.studentInfo;
import com.wmj.SSM.Service.studentInfoService;
@Service("studentInfoService")
public class studentInfoServiceImpl implements studentInfoService {
@Resource
private studentInfoDao stuInfoDao;
@Override
public List getAllStudentInfo() {
List stuInfo =this.stuInfoDao.getAllStudentInfo();
return stuInfo;
}
@Override
public List getStudentInfoByNumReturnList(int num) {
List stuInfo =this.stuInfoDao.getStudentInfoByNumReturnList(num);
return stuInfo;
}
@Override
public studentInfo getStudentInfoByNum(Integer stuNum) {
studentInfo stuInfo =this.stuInfoDao.getStudentInfoByNum(stuNum);
return stuInfo;
}
@Override
public studentInfo getStudentInfoByName(String stuName) {
// TODO Auto-generated method stub
return null;
}
@Override
public studentInfo getStudentInfoByMajor(String stuMajor) {
// TODO Auto-generated method stub
return null;
}
@Override
public int updateStudentInfo(studentInfo stuInfo) {
return this.stuInfoDao.updateStudentInfo(stuInfo);
}
@Override
public int addStudentInfo(studentInfo stuInfo) {
return this.stuInfoDao.addStudentInfo(stuInfo);
}
@Override
public int deleteStudentInfo(Integer num) {
return this.stuInfoDao.deleteStudentInfo(num);
}
}
7.6在controller层新建stuInfoController.java文件作为与前台交互
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.wmj.framework.util.JSONUtil;
import com.wmj.framework.vo.JSONVO;
import com.wmj.SSM.Pojo.studentInfo;
import com.wmj.SSM.Service.studentInfoService;
import net.sf.json.JSONObject;
import net.sf.json.JSONArray;
@RestController
@RequestMapping("/stu")
public class stuInfoController {
@Resource
private studentInfoService stuInfoService;
@RequestMapping(value="/selectStu")
public List selectStu(HttpServletRequest request, HttpServletResponse response, String json){
JSONObject jsonobject = JSONObject.fromObject(json);
studentInfo rule = (studentInfo) JSONObject.toBean(jsonobject, studentInfo.class);
List RestuInfo = new ArrayList();
if(rule.getStuNum()!=null){
RestuInfo=stuInfoService.getStudentInfoByNumReturnList(rule.getStuNum());
}else{
RestuInfo=stuInfoService.getAllStudentInfo();
}
return RestuInfo;
}
//根据学号查询信息
@RequestMapping(value="/getDataByNum")
public void getDataByNum(HttpServletRequest request, HttpServletResponse response, Integer num) {
studentInfo entity = stuInfoService.getStudentInfoByNum(num);
response.setContentType("text/html");
response.setCharacterEncoding("UTF-8");
try {
response.getWriter().print(JSONObject.fromObject(entity));
} catch (IOException e) {
e.printStackTrace();
}
}
@RequestMapping(value="/addStudentInfo")
public void addStudentInfo(HttpServletRequest request, HttpServletResponse response, String json){
JSONObject jsonobject = JSONObject.fromObject(json);
studentInfo rule = (studentInfo) JSONObject.toBean(jsonobject, studentInfo.class);
int result = stuInfoService.addStudentInfo(rule);
//这些都是灵活的返回提示,
JSONVO jsonVO = null;
if (result > 0) {
jsonVO = new JSONVO(result, "添加成功");
} else {
jsonVO = new JSONVO(result, "添加失败");
}
response.setContentType("text/html");
response.setCharacterEncoding("UTF-8");
try {
response.getWriter().print(jsonVO);
} catch (IOException e) {
e.printStackTrace();
}
}
@RequestMapping(value="deleteDataByIds")
public void deleteDataById(HttpServletRequest request, HttpServletResponse response, Integer num) {
int result = stuInfoService.deleteStudentInfo(num);
JSONVO jsonVO = null;
if (result > 0) {
jsonVO = new JSONVO(result, "删除成功");
} else {
jsonVO = new JSONVO(result, "删除失败");
}
response.setContentType("text/html");
response.setCharacterEncoding("UTF-8");
try {
response.getWriter().print(jsonVO);
} catch (IOException e) {
e.printStackTrace();
}
}
@RequestMapping(value="updateStudentInfo")
public void updateStudentInfo(HttpServletRequest request, HttpServletResponse response, String json) {
JSONObject jsonobject = JSONObject.fromObject(json);
studentInfo rule = (studentInfo) JSONObject.toBean(jsonobject, studentInfo.class);
int result = stuInfoService.updateStudentInfo(rule);
//这些都是灵活的返回提示,
JSONVO jsonVO = null;
if (result > 0) {
jsonVO = new JSONVO(result, "更新成功");
} else {
jsonVO = new JSONVO(result, "更新失败");
}
response.setContentType("text/html");
response.setCharacterEncoding("UTF-8");
try {
response.getWriter().print(jsonVO);
} catch (IOException e) {
e.printStackTrace();
}
}
}
至此,ssm+maven的后台就完成了。
附带一个,自己用ExtJs +SSM+maven 在eclipse中完整的小例子:
http://download.csdn.net/download/idomyway/10161616
实现效果