çç¥è¯´SpringMVCç³»åè¿è½½è¯¾ç¨ï¼éä¿ææï¼åºäºSpring5çæ¬(è§é¢åæ¥)ï¼æ¬¢è¿åä½çç²è½¬åå ³æ³¨å¦ä¹ ãæªç»ä½è ææï¼ç¦æ¢è½¬è½½
æ´åSSMæ¡æ¶
å¨ä¸ä¸èä¸ï¼æ们äºè§£äºSpringMVCåæ°æ¥æ¶å¤çåç»æ跳转å¤çï¼
çç¥è¯´SpringMVC04ï¼æ°æ®å¤çå跳转
ç°å¨æ们æ¥ççï¼å¦ä½éæSSMæ¡æ¶ï¼å®æ´é¡¹ç®çæ´åï¼
æ´åSSM
ç¯å¢è¦æ±
ç¯å¢ï¼
- IDEA
- MySQL 5.7.19
- Tomcat 9
- Maven 3.6
è¦æ±ï¼
- éè¦çç»ææ¡MySQLæ°æ®åºï¼Springï¼JavaWebåMyBatisç¥è¯ï¼ç®åçå端ç¥è¯ï¼
æ°æ®åºç¯å¢
å建ä¸ä¸ªåæ¾ä¹¦ç±æ°æ®çæ°æ®åºè¡¨
CREATE DATABASE `ssmbuild`;USE `ssmbuild`;DROP TABLE IF EXISTS `books`;CREATE TABLE `books` ( `bookID` INT(10) NOT NULL AUTO_INCREMENT COMMENT '书id', `bookName` VARCHAR(100) NOT NULL COMMENT '书å', `bookCounts` INT(11) NOT NULL COMMENT 'æ°é', `detail` VARCHAR(200) NOT NULL COMMENT 'æè¿°', KEY `bookID` (`bookID`)) ENGINE=INNODB DEFAULT CHARSET=utf8INSERT  INTO `books`(`bookID`,`bookName`,`bookCounts`,`detail`)VALUES (1,'Java',1,'ä»å
¥é¨å°æ¾å¼'),(2,'MySQL',10,'ä»å åºå°è·è·¯'),(3,'Linux',5,'ä»è¿é¨å°è¿ç¢');
åºæ¬ç¯å¢æ建
1ãæ°å»ºä¸Maven项ç®ï¼ssmbuild ï¼ æ·»å webçæ¯æ
2ãå¯¼å ¥ç¸å ³çpomä¾èµï¼
<dependencies> Â Â Â Â <dependency> Â Â Â Â <groupId>junitgroupId> Â Â Â Â <artifactId>junitartifactId> Â Â Â Â <version>4.12version> Â Â dependency> Â Â Â Â <dependency> Â Â Â Â <groupId>mysqlgroupId> Â Â Â Â <artifactId>mysql-connector-javaartifactId> Â Â Â Â <version>5.1.47version> Â Â dependency> Â Â Â Â <dependency> Â Â Â Â <groupId>com.mchangegroupId> Â Â Â Â <artifactId>c3p0artifactId> Â Â Â Â <version>0.9.5.2version> Â Â dependency> Â Â Â Â <dependency> Â Â Â Â <groupId>javax.servletgroupId> Â Â Â Â <artifactId>servlet-apiartifactId> Â Â Â Â <version>2.5version> Â Â dependency> Â Â <dependency> Â Â Â Â <groupId>javax.servlet.jspgroupId> Â Â Â Â <artifactId>jsp-apiartifactId> Â Â Â Â <version>2.2version> Â Â dependency> Â Â <dependency> Â Â Â Â <groupId>javax.servletgroupId> Â Â Â Â <artifactId>jstlartifactId> Â Â Â Â <version>1.2version> Â Â dependency> Â Â Â Â <dependency> Â Â Â Â <groupId>org.mybatisgroupId> Â Â Â Â <artifactId>mybatisartifactId> Â Â Â Â <version>3.5.2version> Â Â dependency> Â Â <dependency> Â Â Â Â <groupId>org.mybatisgroupId> Â Â Â Â <artifactId>mybatis-springartifactId> Â Â Â Â <version>2.0.2version> Â Â dependency> Â Â Â Â <dependency> Â Â Â Â <groupId>org.springframeworkgroupId> Â Â Â Â <artifactId>spring-webmvcartifactId> Â Â Â Â <version>5.1.9.RELEASEversion> Â Â dependency> Â Â <dependency> Â Â Â Â <groupId>org.springframeworkgroupId> Â Â Â Â <artifactId>spring-jdbcartifactId> Â Â Â Â <version>5.1.9.RELEASEversion> Â Â dependency>dependencies>
3ãMavenèµæºè¿æ»¤è®¾ç½®
<build> Â Â <resources> Â Â Â Â <resource> Â Â Â Â Â Â <directory>src/main/javadirectory> Â Â Â Â Â Â <includes> Â Â Â Â Â Â Â Â <include>**/*.propertiesinclude> Â Â Â Â Â Â Â Â <include>**/*.xmlinclude> Â Â Â Â Â Â includes> Â Â Â Â Â Â <filtering>falsefiltering> Â Â Â Â resource> Â Â Â Â <resource> Â Â Â Â Â Â <directory>src/main/resourcesdirectory> Â Â Â Â Â Â <includes> Â Â Â Â Â Â Â Â <include>**/*.propertiesinclude> Â Â Â Â Â Â Â Â <include>**/*.xmlinclude> Â Â Â Â Â Â includes> Â Â Â Â Â Â <filtering>falsefiltering> Â Â Â Â resource> Â Â resources>build>
4ã建ç«åºæ¬ç»æåé ç½®æ¡æ¶ï¼
- com.kuang.pojo
- com.kuang.dao
- com.kuang.service
- com.kuang.controller
- mybatis-config.xml
<?xml version="1.0" encoding="UTF-8" ?>/span> Â Â Â Â PUBLIC "-//mybatis.org//DTD Config 3.0//EN" Â Â Â Â "http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration>configuration>
- applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xsi:schemaLocation="http://www.springframework.org/schema/beans     http://www.springframework.org/schema/beans/spring-beans.xsd">beans>
Mybatiså±ç¼å
1ãæ°æ®åºé ç½®æ件 database.properties
jdbc.driver=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://localhost:3306/ssmbuild?useSSL=true&useUnicode=true&characterEncoding=utf8jdbc.username=rootjdbc.password=123456
2ãIDEAå ³èæ°æ®åº
3ãç¼åMyBatisçæ ¸å¿é ç½®æ件
<?xml version="1.0" encoding="UTF-8" ?>/span> Â Â Â Â PUBLIC "-//mybatis.org//DTD Config 3.0//EN" Â Â Â Â "http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration> Â Â Â Â <typeAliases> Â Â Â Â <package name="com.kuang.pojo"/> Â Â typeAliases> Â Â <mappers> Â Â Â Â <mapper resource="com/kuang/dao/BookMapper.xml"/> Â Â mappers>configuration>
4ãç¼åæ°æ®åºå¯¹åºçå®ä½ç±» com.kuang.pojo.Books
使ç¨lombokæ件ï¼
package com.kuang.pojo;import lombok.AllArgsConstructor;import lombok.Data;import lombok.NoArgsConstructor;@[email protected]@NoArgsConstructorpublic class Books {     private int bookID;   private String bookName;   private int bookCounts;   private String detail;   }
5ãç¼åDaoå±ç Mapperæ¥å£ï¼
package com.kuang.dao;import com.kuang.pojo.Books;import java.util.List;public interface BookMapper {   //å¢å ä¸ä¸ªBook   int addBook(Books book);   //æ ¹æ®idå é¤ä¸ä¸ªBook   int deleteBookById(int id);   //æ´æ°Book   int updateBook(Books books);   //æ ¹æ®idæ¥è¯¢,è¿åä¸ä¸ªBook   Books queryBookById(int id);   //æ¥è¯¢å
¨é¨Book,è¿ålistéå   List<Books> queryAllBook();}
6ãç¼åæ¥å£å¯¹åºç Mapper.xml æ件ãéè¦å¯¼å ¥MyBatisçå ï¼
<?xml version="1.0" encoding="UTF-8" ?>/span>     PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"     "http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.kuang.dao.BookMapper">     <insert id="addBook" parameterType="Books">    insert into ssmbuild.books(bookName,bookCounts,detail)    values (#{bookName}, #{bookCounts}, #{detail})   insert>     <delete id="deleteBookById" parameterType="int">    delete from ssmbuild.books where bookID=#{bookID}   delete>     <update id="updateBook" parameterType="Books">    update ssmbuild.books    set bookName = #{bookName},bookCounts = #{bookCounts},detail = #{detail}    where bookID = #{bookID}   update>     <select id="queryBookById" resultType="Books">    select * from ssmbuild.books    where bookID = #{bookID}   select>     <select id="queryAllBook" resultType="Books">    SELECT * from ssmbuild.books   select>mapper>
7ãç¼åServiceå±çæ¥å£åå®ç°ç±»
æ¥å£ï¼
package com.kuang.service;import com.kuang.pojo.Books;import java.util.List;//BookService:åºä¸éè¦å»å®ç°,è°ç¨daoå±public interface BookService {   //å¢å ä¸ä¸ªBook   int addBook(Books book);   //æ ¹æ®idå é¤ä¸ä¸ªBook   int deleteBookById(int id);   //æ´æ°Book   int updateBook(Books books);   //æ ¹æ®idæ¥è¯¢,è¿åä¸ä¸ªBook   Books queryBookById(int id);   //æ¥è¯¢å
¨é¨Book,è¿ålistéå   List<Books> queryAllBook();}
å®ç°ç±»ï¼
package com.kuang.service;import com.kuang.dao.BookMapper;import com.kuang.pojo.Books;import java.util.List;public class BookServiceImpl implements BookService {   //è°ç¨daoå±çæä½ï¼è®¾ç½®ä¸ä¸ªsetæ¥å£ï¼æ¹ä¾¿Spring管ç   private BookMapper bookMapper;   public void setBookMapper(BookMapper bookMapper) {     this.bookMapper = bookMapper;  }     public int addBook(Books book) {     return bookMapper.addBook(book);  }     public int deleteBookById(int id) {     return bookMapper.deleteBookById(id);  }     public int updateBook(Books books) {     return bookMapper.updateBook(books);  }     public Books queryBookById(int id) {     return bookMapper.queryBookById(id);  }     public List<Books> queryAllBook() {     return bookMapper.queryAllBook();  }}
OKï¼å°æ¤ï¼åºå±éæ±æä½ç¼åå®æ¯ï¼
Springå±
1ãé ç½®Springæ´åMyBatisï¼æ们è¿éæ°æ®æºä½¿ç¨c3p0è¿æ¥æ± ï¼
2ãæ们å»ç¼åSpringæ´åMybatisçç¸å ³çé ç½®æ件ï¼spring-dao.xml
<?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"    xsi:schemaLocation="http://www.springframework.org/schema/beans     http://www.springframework.org/schema/beans/spring-beans.xsd     http://www.springframework.org/schema/context     https://www.springframework.org/schema/context/spring-context.xsd">       <context:property-placeholder location="classpath:database.properties"/>       <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">         <property name="driverClass" value="${jdbc.driver}"/>     <property name="jdbcUrl" value="${jdbc.url}"/>     <property name="user" value="${jdbc.username}"/>     <property name="password" value="${jdbc.password}"/>         <property name="maxPoolSize" value="30"/>     <property name="minPoolSize" value="10"/>         <property name="autoCommitOnClose" value="false"/>         <property name="checkoutTimeout" value="10000"/>         <property name="acquireRetryAttempts" value="2"/>   bean>     <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">         <property name="dataSource" ref="dataSource"/>         <property name="configLocation" value="classpath:mybatis-config.xml"/>   bean>       <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">         <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>         <property name="basePackage" value="com.kuang.dao"/>   bean>beans>
3ãSpringæ´åserviceå±
<?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"    xsi:schemaLocation="http://www.springframework.org/schema/beans   http://www.springframework.org/schema/beans/spring-beans.xsd   http://www.springframework.org/schema/context   http://www.springframework.org/schema/context/spring-context.xsd">     <context:component-scan base-package="com.kuang.service" />     <bean id="BookServiceImpl" class="com.kuang.service.BookServiceImpl">     <property name="bookMapper" ref="bookMapper"/>   bean>     <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">         <property name="dataSource" ref="dataSource" />   bean>beans>
Springå±æå®ï¼å次ç解ä¸ä¸ï¼Springå°±æ¯ä¸ä¸ªå¤§æç©ï¼ä¸ä¸ªå®¹å¨ï¼å¯¹å§ï¼
SpringMVCå±
1ãweb.xml
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"     xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"     version="4.0">     <servlet>     <servlet-name>DispatcherServletservlet-name>     <servlet-class>org.springframework.web.servlet.DispatcherServletservlet-class>     <init-param>       <param-name>contextConfigLocationparam-name>              <param-value>classpath:applicationContext.xmlparam-value>     init-param>     <load-on-startup>1load-on-startup>   servlet>   <servlet-mapping>     <servlet-name>DispatcherServletservlet-name>     <url-pattern>/url-pattern>   servlet-mapping>     <filter>     <filter-name>encodingFilterfilter-name>     <filter-class>      org.springframework.web.filter.CharacterEncodingFilter     filter-class>     <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>       <session-config>     <session-timeout>15session-timeout>   session-config>   web-app>
2ãspring-mvc.xml
<?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:mvc="http://www.springframework.org/schema/mvc"    xsi:schemaLocation="http://www.springframework.org/schema/beans   http://www.springframework.org/schema/beans/spring-beans.xsd   http://www.springframework.org/schema/context   http://www.springframework.org/schema/context/spring-context.xsd   http://www.springframework.org/schema/mvc   https://www.springframework.org/schema/mvc/spring-mvc.xsd">       <mvc:annotation-driven />     <mvc:default-servlet-handler/>     <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">     <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />     <property name="prefix" value="/WEB-INF/jsp/" />     <property name="suffix" value=".jsp" />   bean>     <context:component-scan base-package="com.kuang.controller" />beans>
3ãSpringé ç½®æ´åæ件ï¼applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xsi:schemaLocation="http://www.springframework.org/schema/beans     http://www.springframework.org/schema/beans/spring-beans.xsd">   <import resource="spring-dao.xml"/>   <import resource="spring-service.xml"/>   <import resource="spring-mvc.xml"/>   beans>
é ç½®æ件ï¼ææ¶ç»æï¼Controller å è§å¾å±ç¼å
1ãBookController ç±»ç¼å ï¼ æ¹æ³ä¸ï¼æ¥è¯¢å ¨é¨ä¹¦ç±
@[email protected]("/book")public class BookController {   @Autowired   @Qualifier("BookServiceImpl")   private BookService bookService;   @RequestMapping("/allBook")   public String list(Model model) {     List<Books> list = bookService.queryAllBook();     model.addAttribute("list", list);     return "allBook";  }}
2ãç¼åé¦é¡µ index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %><html><head>   <title>é¦é¡µtitle>   <style type="text/css">     a {       text-decoration: none;       color: black;       font-size: 18px;    }     h3 {       width: 180px;       height: 38px;       margin: 100px auto;       text-align: center;       line-height: 38px;       background: deepskyblue;       border-radius: 4px;    }   style>head><body><h3>   <a href="${pageContext.request.contextPath}/book/allBook" target="_blank" rel="external nofollow" >ç¹å»è¿å
¥å表页a>h3>body>html>
3ã书ç±åè¡¨é¡µé¢ allbook.jsp
@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>@ page contentType="text/html;charset=UTF-8" language="java" %><html><head>   <title>书ç±å表title>   <meta name="viewport" content="width=device-width, initial-scale=1.0">     <link href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" rel="stylesheet">head><body><div class="container">   <div class="row clearfix">     <div class="col-md-12 column">       <div class="page-header">         <h1>           <small>书ç±å表 ââ æ¾ç¤ºææ书ç±small>         h1>       div>     div>   div>   <div class="row">     <div class="col-md-4 column">       <a class="btn btn-primary" href="${pageContext.request.contextPath}/book/toAddBook" target="_blank" rel="external nofollow" >æ°å¢a>     div>   div>   <div class="row clearfix">     <div class="col-md-12 column">       <table class="table table-hover table-striped">         <thead>         <tr>           <th>书ç±ç¼å·th>           <th>书ç±ååth>           <th>书ç±æ°éth>           <th>书ç±è¯¦æ
th>           <th>æä½th>         tr>         thead>         <tbody>         <c:forEach var="book" items="${requestScope.get('list')}">           <tr>             <td>${book.getBookID()}td>             <td>${book.getBookName()}td>             <td>${book.getBookCounts()}td>             <td>${book.getDetail()}td>             <td>               <a href="${pageContext.request.contextPath}/book/toUpdateBook?id=${book.getBookID()}" target="_blank" rel="external nofollow" >æ´æ¹a> |               <a href="${pageContext.request.contextPath}/book/del/${book.getBookID()}" target="_blank" rel="external nofollow" >å é¤a>             td>           tr>         c:forEach>         tbody>       table>     div>   div>div>
4ãBookController ç±»ç¼å ï¼ æ¹æ³äºï¼æ·»å 书ç±
@RequestMapping("/toAddBook")public String toAddPaper() { Â Â return "addBook";}@RequestMapping("/addBook")public String addPaper(Books books) { Â Â System.out.println(books); Â Â bookService.addBook(books); Â Â return "redirect:/book/allBook";}
5ãæ·»å 书ç±é¡µé¢ï¼addBook.jsp
@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>@ page contentType="text/html;charset=UTF-8" language="java" %><html><head>   <title>æ°å¢ä¹¦ç±title>   <meta name="viewport" content="width=device-width, initial-scale=1.0">     <link href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" rel="stylesheet">head><body><div class="container">   <div class="row clearfix">     <div class="col-md-12 column">       <div class="page-header">         <h1>           <small>æ°å¢ä¹¦ç±small>         h1>       div>     div>   div>   <form action="${pageContext.request.contextPath}/book/addBook" method="post">    书ç±å称ï¼<input type="text" name="bookName"><br><br><br>    书ç±æ°éï¼<input type="text" name="bookCounts"><br><br><br>    书ç±è¯¦æ
ï¼<input type="text" name="detail"><br><br><br>     <input type="submit" value="æ·»å ">   form>div>
6ãBookController ç±»ç¼å ï¼ æ¹æ³ä¸ï¼ä¿®æ¹ä¹¦ç±
@RequestMapping("/toUpdateBook")public String toUpdateBook(Model model, int id) { Â Â Books books = bookService.queryBookById(id); Â Â System.out.println(books); Â Â model.addAttribute("book",books ); Â Â return "updateBook";}@RequestMapping("/updateBook")public String updateBook(Model model, Books book) { Â Â System.out.println(book); Â Â bookService.updateBook(book); Â Â Books books = bookService.queryBookById(book.getBookID()); Â Â model.addAttribute("books", books); Â Â return "redirect:/book/allBook";}
7ãä¿®æ¹ä¹¦ç±é¡µé¢  updateBook.jsp
@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>@ page contentType="text/html;charset=UTF-8" language="java" %><html><head>   <title>ä¿®æ¹ä¿¡æ¯title>   <meta name="viewport" content="width=device-width, initial-scale=1.0">     <link href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" rel="stylesheet">head><body><div class="container">   <div class="row clearfix">     <div class="col-md-12 column">       <div class="page-header">         <h1>           <small>ä¿®æ¹ä¿¡æ¯small>         h1>       div>     div>   div>   <form action="${pageContext.request.contextPath}/book/updateBook" method="post">     <input type="hidden" name="bookID" value="${book.getBookID()}"/>    书ç±å称ï¼<input type="text" name="bookName" value="${book.getBookName()}"/>    书ç±æ°éï¼<input type="text" name="bookCounts" value="${book.getBookCounts()}"/>    书ç±è¯¦æ
ï¼<input type="text" name="detail" value="${book.getDetail() }"/>     <input type="submit" value="æ交"/>   form>div>
8ãBookController ç±»ç¼å ï¼ æ¹æ³åï¼å é¤ä¹¦ç±
@RequestMapping("/del/{bookId}")public String deleteBook(@PathVariable("bookId") int id) { Â Â bookService.deleteBookById(id); Â Â return "redirect:/book/allBook";}
é ç½®Tomcatï¼è¿è¡è¿è¡ï¼
å°ç®å为æ¢ï¼è¿ä¸ªSSM项ç®æ´åå·²ç»å®å ¨çOKäºï¼å¯ä»¥ç´æ¥è¿è¡è¿è¡æµè¯ï¼è¿ä¸ªç»ä¹ ååçéè¦ï¼å¤§å®¶éè¦ä¿è¯ï¼ä¸çä»»ä½ä¸è¥¿ï¼èªå·±ä¹å¯ä»¥å®æ´çå®ç°åºæ¥ï¼
项ç®ç»æå¾
å°ç»åå±æ
è¿ä¸ªæ¯åå¦ä»¬ç第ä¸ä¸ªSSMæ´åæ¡ä¾ï¼ä¸å®è¦ççäºå¿ï¼
SSMæ¡æ¶çéè¦ç¨åº¦æ¯ä¸è¨èå»çï¼å¦å°è¿éï¼å¤§å®¶å·²ç»å¯ä»¥è¿è¡åºæ¬ç½ç«çåç¬å¼åãä½æ¯è¿åªæ¯å¢å æ¹æ¥çåºæ¬æä½ãå¯ä»¥è¯´å¦å°è¿éï¼å¤§å®¶æç®æ¯çæ£çæ¥å ¥äºåå°å¼åçé¨ãä¹å°±æ¯è½æ¾ä¸ä¸ªåå°ç¸å ³å·¥ä½çåºçº¿ã
æ许å¾å¤äººï¼å·¥ä½å°±åè¿äºäºæ ï¼ä½æ¯å¯¹äºä¸ªäººçæé«æ¥è¯´ï¼è¿è¿è¿ä¸å¤ï¼
æ们åé¢è¿è¦å¦ä¹ ä¸äº SpringMVC çç¥è¯ï¼
- Ajax  å  Json
- æ件ä¸ä¼ åä¸è½½
- æ¦æªå¨
å路漫漫ï¼è®¤çåææéè¦ï¼
end
è§é¢åæ¥æ´æ°ï¼è¿æ¬¡ä¸å®ï¼