JSPTestController.java 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. package com.malk.mcli.test;
  2. import com.alibaba.fastjson.JSON;
  3. import com.malk.repository.dao.primary.McAuthorizationDao;
  4. import com.malk.server.common.McR;
  5. import lombok.extern.slf4j.Slf4j;
  6. import org.springframework.beans.factory.annotation.Autowired;
  7. import org.springframework.context.annotation.Profile;
  8. import org.springframework.web.bind.annotation.GetMapping;
  9. import org.springframework.web.bind.annotation.RequestMapping;
  10. import org.springframework.web.bind.annotation.RestController;
  11. import org.springframework.web.servlet.ModelAndView;
  12. import javax.servlet.http.HttpServletRequest;
  13. import java.util.List;
  14. import java.util.Map;
  15. /**
  16. * JSP在SpringBoot内运行
  17. * -
  18. * 1. 在 file - project structure - facets 下, 添加web以及对应的路径. 注意 web.xml 直接添加, 完成后将 webapp 文件夹移动到 src/main 下面
  19. * 2. 添加依赖, 注意 tomcat-embed-jasper 需要在子项目内引用才有效, 余下依赖引入主项目即可
  20. * 3. 项目配置, (jsp为存放jsp文件夹) spring: mvc: view: --> prefix: /WEB-INF/jsp/ --> suffix: .jsp
  21. * 4. jsp文件有三种语法, JSP表达式 / EL表达式 / JSTL标签库; 正常书写 html, 数据获取通过 ModelAndView 传递进来 [c标签最实用]
  22. * 5. 在controller内返回 ModelAndView, 渲染为jsp文件名称, 参数传递可用 request.setAttribute / modelAndView.addObject
  23. * 6. 可选: 在启动配置内, environment - working directory 下填写 $MODULE_WORKING_DIR$
  24. * 7. 进阶: 实现jsp效果后, 后续可通过 mvc 解耦视图和控制器, view 可使用模板依赖进行统一管理与继承, com.zhuogao.zhuogao.com.malk.hongfeng.controller 可通过 servlet 统一接管
  25. **/
  26. @Slf4j
  27. @Profile({"dev", "test"})
  28. @RestController
  29. @RequestMapping("/test/jsp")
  30. public class JSPTestController {
  31. @Autowired
  32. private McAuthorizationDao dao;
  33. @RequestMapping("show")
  34. ModelAndView showEmp() {
  35. List<Map> list = JSON.parseArray(JSON.toJSONString(dao.findAll()), Map.class);
  36. ModelAndView mav = new ModelAndView("/test");
  37. mav.addObject("list", list);
  38. return mav;
  39. }
  40. @RequestMapping("/index")
  41. ModelAndView index(HttpServletRequest request) {
  42. //将用户信息保存到Request对象中
  43. request.setAttribute("name", "pan_junbiao的博客");
  44. request.setAttribute("blog", "https://blog.csdn.net/pan_junbiao");
  45. request.setAttribute("remark", "您好,欢迎访问 pan_junbiao的博客");
  46. //返回首页
  47. return new ModelAndView("/index");
  48. }
  49. @RequestMapping("/echarts")
  50. ModelAndView echarts() {
  51. return new ModelAndView("/echart");
  52. }
  53. /**
  54. * test
  55. */
  56. @GetMapping("test")
  57. McR test() {
  58. return McR.success();
  59. }
  60. }