SpringBootMVC01——A simple SpringBootMVC Sample

不带数据库的SpringBootMVC案例

1.创建一个SpringBoot项目,添加thymeleaf,webstarter

2.目录层级

3.启动器代码

package com.littlepage;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class SpringBoot04Application {
    public static void main(String[] args) {
        SpringApplication.run(SpringBoot04Application.class, args);
    }
}

4.Dao层代码

package com.littlepage.dao;

import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.management.RuntimeErrorException;

import org.springframework.stereotype.Repository;

import com.littlepage.domain.City;

@Repository
public class CityDao {

    /**
     * 在内存中虚拟出一份数据
     * @return
     */
    static Map<Integer, City> dataMap=Collections.synchronizedMap(new HashMap<>());
    
    public List<City> findAll(){
        return new ArrayList<City>(dataMap.values());
    }
    
    public void save(City city) throws Exception {
        if(dataMap.get(city.getId())==null) {
            dataMap.put(city.getId(), city);
        }else {
            throw new RuntimeException("数据已经存在");
        }
    }
}

5.service层代码

package com.littlepage.service;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.littlepage.dao.CityDao;
import com.littlepage.domain.City;

@Service
public class CityService {
    
    @Autowired
    CityDao cityDao;

    public List<City> findAll(){
        return cityDao.findAll();
    }
    
    public String add(Integer id,String name) {
        try {
            cityDao.save(new City(id, name));
            return "保存成功";
        } catch (Exception e) {
            return "保存失败";
        }
    }
}

6.controller层代码

package com.littlepage.controller;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;

import com.littlepage.dao.CityDao;
import com.littlepage.domain.City;
import com.littlepage.service.CityService;

@Controller
@RequestMapping("city")
public class CityController {

    @Autowired
    CityService citySrv;
    
    @RequestMapping("/list")
    public String list(Model model) {
        List<City> list=citySrv.findAll();
        model.addAttribute("list",list);return "list";
    }
    
    @RequestMapping("/add")
    public String add(@RequestParam("id") Integer id,@RequestParam("name") String name,Model model) {
        String success=citySrv.add(id, name);
        model.addAttribute("success",success);
        return "add";
    }
    
    @RequestMapping("/addPage")
    public String addPage() {
        return "addPage";
    }

}

7.三个页面

list

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>list</title>
</head>
<body>
    <table>
        <tr>
            <th>ID</th>
            <th>Name</th>
        </tr>
        <tr th:each="city:${list}">
            <td th:text="${city.id}"></td>
            <td th:text="${city.name}"></td>
        </tr>
    </table>
</body>
</html>

add

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
    <h1 th:text="${success}"></h1>
</body>
</html>

addPage

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>add</title>
</head>
    <body>
        <form action="add" method="post" >
        id:<input name="id" type="text" ><br>
        name:<input name="name" type="text"><br>
        <button type="submit">提交</button>
        </form>
    </body>
</html>

实现功能:基于内存进行增加和显示页面效果

 

posted @ 2019-06-20 17:28  SteveYu  阅读(169)  评论(0编辑  收藏  举报