• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

springboot返回modelandview页面的实例

springboot 搞代码 4年前 (2022-01-05) 28次浏览 已收录 0个评论

这篇文章主要介绍了springboot返回modelandview页面的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

1、添加依赖

这个应该是web项目相关的jar

  org.springframework.bootspring-boot-starter-web
 <!-- jstl JSP标准标签库 --> javax.servletjstl1.2<!-- 返回jsp页面还需要这个依赖 --> org.apache.tomcat.embedtomcat-embed-jasperprovided

2、application.properties

  org.springframework.bootspring-boot-starter-parent1.5.10.RELEASE<!-- lookup parent from repository -->

我这里是parent是1.5.10,所以jsp的配置应该如下

 #jsp path spring.mvc.view.prefix=/WEB-INF/jsp/ spring.mvc.view.suffix=.jsp 老版本的应该是这个 spring.view.prefix=/WEB-INF/jsp/ spring.view.suffix=.jsp

3、控制器

因为是返回页面,所以不能用@RestController返回json格式

 package com.example.demo.controller; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.annotation.ComponentScan; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.servlet.ModelAndView; @Controller /*@ComponentScan*/ @RequestMapping("/test") public class TestController { private final Logger log = LoggerFactory.getLogger(this.getClass()); @RequestMapping(value = "queryMaterialType", method = RequestMethod.POST) public Object test(){ log.info("--------------->>打印日志"); return "hellow world"; } //@RestController,返回json数据 //@Controller,返回login.jsp页面 @RequestMapping(value = "/login", method = RequestMethod.GET) public String login(HttpServletRequest request,HttpServletResponse response){ return "login"; } //无论是@RestController还是@Controller都不影响返回页面 @RequestMapping(value = "/loginPage", method = RequestMethod.GET) public ModelAndView loginPage(HttpServletRequest request,HttpServletResponse response){ ModelAndView mav = new ModelAndView(); mav.setViewName("login"); return mav; } } 

补充知识:springBoot前后分离项目,通过ModelAndView返回给app或前台静态页面

1.先做静态页模板aaa.html,放到springboot项目的根目录下,如下如中,新建一个templates的文件夹,将静态页放到这里面就可以了

静态页代码为

   <title>标题</title> body { margin-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; background: #f3f3f3; font-family: "Microsoft YaHei ", "微软雅黑", "arial"; } h1 { height: 1px; width: 100%; margin: 10px 0; background: #f1f1f1; } img { width: 100%; height: auto; } .bodys { width: 100%; height: auto; overflow: Hidden; padding-top: 10px; padding-bottom: 50px; background: #fff; } .head { width: 96%; min-height: 30px; padding: 18px 2% 2px 2%; line-height: 25px; text-align: left; font-size: 20px; font-weight: bold; color: #111; } .time { width: 96%; height: 20px; line-height: 20px; font-size: 11px; text-align: left; padding: 0 2%; color: #999; } .info { width: 96%; height: auto; padding: 10px 2%; line-height: 25px; text-align: left; font-size: 15px; }  <div class="bodys"> <div class="head">未知</div><div class="time">未知</div><h1></h1><div class="info">未知</div></div>

2.然后主要是 controller层,业务逻辑根据自己的需求来

 @RequestMapping("/html") @Controller public class AppCommonHtmlController { @RequestMapping(value = "/ceshi", method = RequestMethod.GET) public ModelAndView getCeishi(“根据自己业务传入需要的参数”) { ModelAndView modelAndView=new ModelAndView(); //根据自己的业务,和静态页中的参数对应上就行,也可以放入实体类,和静态页面对应就行了 modelAndView.addObject("title",“标题”); modelAndView.addObject("addDate",“添加时间”); modelAndView.addObject("content",“内容”); //存入静态页的名称,就可以把处理好的静态页返回给app或前台 modelAndView.setViewName("aaa"); return modelAndView; } }

然后浏览器输入:http://localhost:8888/项目名/html/ceshi

该方法多适用于app端,需要根据不同的情况得到不一样内容的静态页展示到手机上,就可以通过这种方法,做一个静态页的模板,通过el表达式给模板不同的内容,然后app端可以通过访问的ip直接获取到静态页

下面的方法也可以,效果同上面一样

静态页代码

   <title>静态页</title> body { margin-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; background: #f3f3f3; font-family: "Microsoft YaHei ", "微软雅黑", "arial"; } h1 { height: 1px; width: 100%; margin: 10px 0; background: #f1f1f1; } img { width: 100%; height: auto; } .bodys { width: 100%; height: auto; overflow: Hidden; padding-top: 10px; padding-bottom: 50px; background: #fff; } .head { width: 96%; min-height: 30px; padding: 18px 2% 2px 2%; line-height: 25px; text-align: left; font-size: 20px; font-weight: bold; color: #111; } .time { width: 96%; height: 20px; line-height: 20px; font-size: 11px; text-align: left; padding: 0 2%; color: #999; } .info { width: 96%; height: auto; padding: 10px 2%; line-height: 25px; text-align: left; font-size: 15px; }  <div class="bodys"> <div class="head">未知</div><div class="time">未知</div><h1></h1><div class="info">未知</div></div>

controller代码

 @RequestMapping(value = "/ceshi", method = RequestMethod.GET) public String getCeishi(“业务逻辑需要的入参”, Model model) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); JSONObject jsonObject = JSONObject.fromObject(“需要传到静态页的动态数据”); jsonObject.remove("publishDate");//时间,具体作用不清楚,个人猜测是原本数据格式不支持,需要转换一下,所以要先删除后重新赋值 jsonObject.put("publishDate", sdf.format(notice.getPublishDate()));//时间重新赋值 model.addAttribute("bbb", jsonObject);//将转换好的数据存入model中 return "aaa"; //对应好静态页的名称return出去就可以了 }

以上这篇springboot返回modela来源gao@daima#com搞(%代@#码网ndview页面的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持gaodaima搞代码网

以上就是springboot返回modelandview页面的实例的详细内容,更多请关注gaodaima搞代码网其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:springboot返回modelandview页面的实例

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址