首先是实体类,这里因为用了JPA,所以和之前的有点不同,添加了一些注解。
Entity:表示这是个实体类。
Table:该实体类映射的数据表名。
Column:指定该字段的属性,nullable 表示是否非空,unique 表示是否是唯一。
那么实体类的代码如下:
@Entity @Table(name = "t_user") public class User { /** 编号 */ @Id @GeneratedValue private Long id; /** 姓名 */ @Column(nullable = false, unique = true) private String name; /** 密码*/ @Column(nullable = false) private String password; /** 年龄 */ @Column(nullable = false) private Integer age; //getter和setter略 }由于用的是JPA,dao层这块只需继承JpaRepository该类即可,需要指定实体类和主键类型。
dao层代码如下:
业务层这块和之前一样调用即可,虽然用的是JPA,但是方法也是很简单的,新增和修改就用save,删除就是delete,findOne就是通过ID查找,findAll就是查询所有等等。
services代码如下:
@Service public class UserServiceImpl implements UserService { @Autowired private UserDao userDao; @Override public boolean addUser(User user) { boolean flag=false; try{ userDao.save(user); flag=true; }catch(Exception e){ System.out.println("新增失败!"); e.printStackTrace(); } return flag; } @Override public boolean updateUser(User user) { boolean flag=false; try{ userDao.save(user); flag=true; }catch(Exception e){ System.out.println("修改失败!"); e.printStackTrace(); } return flag; } @Override public boolean deleteUser(Long id) { boolean flag=false; try{ userDao.delete(id); flag=true; }catch(Exception e){ System.out.println("删除失败!"); e.printStackTrace(); } return flag; } @Override public User findUserById(Long id) { return userDao.findOne(id); } @Override public List<User> findAll() { return userDao.findAll(); } }到了控制层这块,这里提供还是提供接口给Jsp进行调用,不过这里类的注解就不能用之前的RestController这个注解,这个注解以json的格式返回数据,但是我们有时返回的时候需要跳转界面,所以应该使用Controller这个注解。如果想在某个方法中返回的数据格式是json的话,在该方法上加上ResponseBody这个注解即可。
控制层代码如下:
@Controller public class UserRestController { @Autowired private UserService userService; @RequestMapping("/hello") public String hello() { return "hello"; } @RequestMapping("http://www.likecs.com/") public String index() { return "redirect:/list"; } @RequestMapping("/list") public String list(Model model) { System.out.println("查询所有"); List<User> users=userService.findAll(); model.addAttribute("users", users); return "user/list"; } @RequestMapping("/toAdd") public String toAdd() { return "user/userAdd"; } @RequestMapping("/add") public String add(User user) { userService.addUser(user); return "redirect:/list"; } @RequestMapping("/toEdit") public String toEdit(Model model,Long id) { User user=userService.findUserById(id); model.addAttribute("user", user); return "user/userEdit"; } @RequestMapping("/edit") public String edit(User user) { userService.updateUser(user); return "redirect:/list"; } @RequestMapping("/toDelete") public String delete(Long id) { userService.deleteUser(id); return "redirect:/list"; } } 功能测试后端代码介绍就到这里了,至于前端JSP的代码就不在多说了(主要原因是界面写得太丑了...),我们直接启动项目,查看效果。
启动项目,在浏览器上输入::8088/list
主界面:
添加一条数据之后的界面:
其它的修改和删除也能实现,这里就在一一不贴图了。
springBoot整合 Jsp到这就结束了。
该工程参考:
Thymeleaf介绍Thymeleaf是个模板引擎,可以用于Web与非Web应用,它可以XML/XHTML/HTML5, JavaScript, CSS ,甚至文本文件。
Thymeleaf的使用Thymeleaf这块个人使用不太熟练,这个也不是本篇文章主要讲述的内容,详细的可以查看官方文档。
https://www.thymeleaf.org/documentation.html
基本和上面的SringBoot整合Jsp差不多,这里就不再赘述了。