modelandview

SpringMVC RESTful

不羁的心 提交于 2020-02-02 08:37:14
RESTful是web应用的一种设计风格、开发方式。 以根据product_id查询产品信息为例。 原来的写法 @org.springframework.stereotype.Controller public class ProductController{ @RequestMapping("/queryProduct") public ModelAndView queryStudent(int product_id) { ModelAndView mav = new ModelAndView("product_info"); //此处省略调用dao层获取产品信息,得到Product类的实例product //将数据传给视图,展示产品信息 mav.addObject("product", product); return mav; } } 请求地址: http://.../queryProduct?product_id=1 RESTful风格的写法 @org.springframework.stereotype.Controller public class ProductController{ @RequestMapping("/product/{product_id}") public ModelAndView queryStudent(@PathVariable int

spring boot 整合Thymeleaf模板

余生颓废 提交于 2020-01-30 08:20:10
SpringBoot 是为了简化 Spring 应用的创建、运行、调试、部署等一系列问题而诞生的产物, 自动装配的特性让我们可以更好的关注业务本身而不是外部的XML配置,我们只需遵循规范,引入相关的依赖就可以轻易的搭建出一个 WEB 工程 在前面几章中已经介绍了如何创建一个 SpringBoot 项目,同时简单的描述了 SpringBoot REST Web服务 。除此之外它也是支持如 JSP 、 Thymeleaf 、 FreeMarker 、 Mustache 、 Velocity 等各种模板引擎,同时还为开发者提供了自定义模板扩展的支持。 使用嵌入式Servlet容器时,请避免使用JSP,因为使用JSP打包后会存在一些限制。 在 SpringBoot 使用上述模板,默认从 src/main/resources/templates 下加载。 thymeleaf介绍 Thymeleaf 是现代化服务器端的Java模板引擎,不同与其它几种模板的是 Thymeleaf 的语法更加接近HTML,并且具有很高的扩展性。详细资料可以浏览 官网 。 特点 支持无网络环境下运行,由于它支持 html 原型,然后在 html 标签里增加额外的属性来达到模板+数据的展示方式。浏览器解释 html 时会忽略未定义的标签属性,所以 thymeleaf 的模板可以静态地运行;当有数据返回到页面时

SpringMVC 配置文件详解

£可爱£侵袭症+ 提交于 2020-01-29 22:10:24
HandlerMapping 处理器映射 HTTP请求被DispatcherServlet拦截后,会调用HandlerMapping来处理,HandlerMapping根据 url<=>controller 之间的映射关系来确定要调用哪个controller来处理。 有2种HandlerMapping: BeanNameUrlHandlerMapping <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" /> <bean name="/userController" class="com.chy.controller.UserController" /> http://localhost:8080/springmvc_war_exploded/userController BeanNameUrl,顾名思义,映射关系是BeanName <=> Url,url地址对应bean的name,根据url中的beanname确定要调用的controller。 SimpleUrlHandlerMapping <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> <property

SpringMVC在JSP页面取不到ModelAndView中的值

﹥>﹥吖頭↗ 提交于 2020-01-29 19:33:17
问题:在java代码中设置 了msg但是在jsp页面使用jstl取不出来 原因:创建maven工程时,idea自动添加的web.xml中的jsp页面头约束版本太低 解决方法:将“一”的代码替换为“二”的代码即可 “一” <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd" > <web-app> </web-app> “二” <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> </web-app> java代码: public class Hello implements Controller { @Override

Spring MVC 入门demo

夙愿已清 提交于 2020-01-29 19:28:58
(1)新建Spring项目 (2)添加所需要的jar包 spring的5+2: spring-core.jar spring.beans.jar spring-context.jar spring-expression.jar spring-aop.jar spring-web.jar spring-webmvc.jar (这2个jar包是spring mvc的) web应用的2个: servlet.jar jsp.jar 这2个包的名字五花八门,总之就是servlet一个、jsp一个。 可以到tomcat的lib下复制,也可以下载Java EE的压缩包。 可以在Project Structure中添加包,这种方式在部署时容易出现lib复制不全的问题, 解决方式参考: https://www.cnblogs.com/chy18883701161/p/12240317.html 也可以在WEB-INF下新建文件夹lib,把jar包复制到此文件夹,然后对lib点击右键->Add as Library。 web应用的lib要建在WEB-INF下,只有建在WEB-INF下,部署时才会复制。 (3)新建包com.chy,model,包下新建实体类User package com.chy.model; public class User { private String username;

Spring MVC 上传文件

半腔热情 提交于 2020-01-29 15:41:19
  Spring MVC的文件上传是通过MultipartResolver(Multipart解析器)处理的,对于MultipartResolver而言它只是一个接口,它有两个实现类。   •CommonsMultipartResolver:依赖于Apache下的jakartaCommon FileUpload项目解析Multipart请求,可以在Spring的各个版本中使用,只是它要依赖于第三方包才得以实现。   •StandardServletMultipartResolver:是Spring 3.1版本后的产物,它依赖于Servlet 3.0或者更高版本的实现,它不用依赖第三方包。   对于两者而言,笔者更倾向于StandardServletMultipartResolver,因为它无须引入任何第三方包,只是当项目使用Spring3.1以下的版本或者Servlet 3.0以下的版本时,只能选择CommonsMultipartResolver。本书会以StandardServletMultipartResolver为主,CommonsMultipartResolver为辅介绍文件上传方面的内容。无论在你的项目中使用的是CommonsMultipartResolver还是StandardServletMultipartResolver

SpringMvc异常处理

左心房为你撑大大i 提交于 2020-01-29 13:46:30
1、HandlerExceptionResolver实现 这里是编写一个全局的异常处理器,其中分别处理ajax请求和页面请求的异常,ajax请求则返回错误信息,页面请求则跳转到500.jsp 1.1实现HandlerExceptionResolver接口 public class GlobalHandlerExceptionResolver implements HandlerExceptionResolver { private static final Logger logger = LoggerFactory.getLogger(GlobalHandlerExceptionResolver.class); @Override public ModelAndView resolveException(HttpServletRequest req, HttpServletResponse resp, Object o, Exception ex) { boolean isAsync = req.getHeader("X-Requested-With") != null && "XMLHttpRequest".equals(req.getHeader("X-Requested-With").toString()); if(isAsync) { /

springboot笔记

匆匆过客 提交于 2020-01-28 17:12:56
springboot整合了第三方常用的框架 log4j日志配置https://www.jianshu.com/p/ccafda45bcea 声明该类是一个springboot引导类 SpringBootApplication 所有springboot工程必须继承 < parent > < groupId > org . springframework . boot < / groupId > < artifactId > spring - boot - starter - parent < / artifactId > < version > 2.1 .9 . RELEASE < / version > < relativePath / > < ! -- lookup parent from repository -- > < / parent > web功能起步依赖 < dependency > < ! -- web功能起步的依賴 -- > < groupId > org . springframework . boot < / groupId > < artifactId > spring - boot - starter - web < / artifactId > < / dependency > 热部署配置 开发中反复修改类 页面等资源,需要重启才能生效

SpringMVC 应用配置

偶尔善良 提交于 2020-01-27 20:16:14
1、增加Spring的支持   新建web项目,添加如下jar包:   commons-logging-1.2.jar  spring-aop-4.2.5.RELEASE.jar  spring-aspects-4.2.5.RELEASE.jar  spring-beans-4.2.5.RELEASE.jar   spring-context-4.2.5.RELEASE.jar  spring-context-support-4.2.5.RELEASE.jar  spring-core-4.2.5.RELEASE.jar  spring-expression-4.2.5.RELEASE.jar   spring-instrument-4.2.5.RELEASE.jar  spring-instrument-tomcat-4.2.5.RELEASE.jar  spring-jdbc-4.2.5.RELEASE.jar  spring-jms-4.2.5.RELEASE.jar   spring-messaging-4.2.5.RELEASE.jar  spring-orm-4.2.5.RELEASE.jar  spring-oxm-4.2.5.RELEASE.jar  spring-test-4.2.5.RELEASE.jar   spring-tx-4.2.5.RELEASE

Springboot中注册拦截器

家住魔仙堡 提交于 2020-01-24 14:26:37
public class MyInterceptor implements HandlerInterceptor { @Override public boolean preHandle ( HttpServletRequest request , HttpServletResponse response , Object handler ) throws Exception { System . out . println ( "preHandle...." ) ; return true ; } @Override public void postHandle ( HttpServletRequest request , HttpServletResponse response , Object handler , ModelAndView modelAndView ) throws Exception { System . out . println ( "postHandle....." ) ; } @Override public void afterCompletion ( HttpServletRequest request , HttpServletResponse response , Object handler , Exception ex ) throws