modelandview

第5章 处理模型数据

对着背影说爱祢 提交于 2019-12-21 21:06:22
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> SpringMVC提供了以下几种途径输出模型数据: ModelAndView :处理方法返回值类型为 ModelAndView 时,方法体即可通过该对象添加模型数据。 Map 及 Model :当入参为 org.springframework.ui.Model 、 org.springframework.ui.ModelMap 或 java.uti.Map 时。在处理方法返回时, Map 中的数据会自动添加到模型中。 @ModelAttribute :方法入参标注该注解后,入参的对象就会放到数据模型中。 @SessionAttributes :将模型中的某个属性暂存到 HttpSession 中,以便多个请求之间可以 共享 这个属性。 ModelAndView 控制器处理方法的返回值如果为 ModelAndView 时,则其既包含视图信息,也包含模型数据信息。 添加模型数据: MoelAndView addObject(String attributeName, Object attributeValue) ModelAndView addAllObject(Map<String, ?> modelMap) 设置视图: void setView(View view) void setViewName

SpringMVC02课堂笔记

帅比萌擦擦* 提交于 2019-12-21 11:10:55
请求相关操作 1@RequestMapping @RequestMapping * 作用:用来限制请求的 * 位置:可以标记在方法上,也可以标记在类上 * 属性: * value:用来限制请求url的,字符串数组类型 * 支持通配符: * ?:表示任意一个字符 * *:任意多个任意字符 * **:任意多层字符 * method:用来限制请求方式的,RequestMethod数组类型 * 默认支持四种请求方式,如果我们指定了某种请求方式,那么前端再给后端发送请求的时候,就必须按着指定的请求方式发送 * GET: 查询数据库资源 * POST: 向数据库中添加数据 * PUT: 修改数据库中的资源 * DELETE:删除数据库中的资源 * * 如何发送put或者delete请求? * 1.在web.xml文件中配置一个HiddenHttpMethodFilter * 2.必须发送post请求 * 3.必须携带一个键值对,键为:_method,值为:put或者delete * 补充:rest请求风格:建议使用请求方式表示对某种资源进行何种方式的处理,规范 <filter> <filter-name>HiddenHttpMethodFilter</filter-name> <filter-class>org.springframework.web.filter

统一异常处理

丶灬走出姿态 提交于 2019-12-20 18:03:53
1.统一异常处理 1.1 统一异常结果类型 Java中进行异常处理: 一类是可预知的异常,程序员在编码时,主动抛出的异常,为了给用户操作提示,提前检查代码中可能存在异常。 通过开发中,采用自定义的异常类,每个异常类表示每一类异常信息。类需要继承Exception类。 本系统采用统一异常类,提供一个属性标识异常类。 另一类是不可预知异常,就是runtimeException异常,通过提高代码编写质量来避免此类异常,也可通过后期测试 人员进行系统功能测试对runtime异常进行避免。 如何使用异常类? 在service中要抛出此异常类。 在action或者Controller中捕获系统自定义异常,解析系统自定义异常。 解析系统自定义异常过程: 如果抛出的ExceptionResultInfo系统自定义异常,直接获取该异常信息即可。 如果不是抛出的ExceptionResultInfo系统自定义异常,重新构造一个“未知错误异常!”。 将异常信息或成功信息返回到页面: 统一使用类SubmitResultInfo,提交类的方法统一使用该类型作为返回值类型。 由于action中所有的提交类方法统一返回SubmitResultInfo,所以在页面要统一使用一个方法解析json结果。 修改回调函数: function sysusersave_callback(data){ message

SpringMVC 学习笔记

独自空忆成欢 提交于 2019-12-20 11:08:38
1、跳转、重定向   在任何Web项目中跳转和重定向是必须的,在Servlet中,跳转的方式(1)可以通过客户端跳转 response.sendRedirect( "jspPath") 但是这种跳转只能传递session范围的属性,无法传递request范围属性,(2)执行服务端跳转(地址栏不发生变化)必须依靠 RequestDispatcher 接口完成,需要通过forward (后台)或者include(页面)来完成跳转 。   在SpringMVC中,Controller中的Action我自己常用的有两种返回值ModelAndView和String。ModelAndView是SpringMVC封装的一个展示对象和视图的一个类(注释中提到的:Represents a model and view returned by a handler, to be resolved by a DispatcherServlet.) 1.1、ModelAndView   在返回ModelAndView的时候,通过setViewName(String viewName) 来设置展示需要绑定的jsp页面。   如果在处理过程中,根据业务逻辑的处理过程需要跳转到其他Action,也直接调用setViewName(String viewName)即可,但是这时候的viewName是有格式要求的要以

HTTP请求处理流程-SpringMvc

柔情痞子 提交于 2019-12-20 00:31:28
1、在SpringMVC的http请求处理过程中,包括了前端控制器(DispatcherServlet)、处理映射器(HandlerMapping)、处理适配器(HandlerAdapter)、处理器((Handler)Controller)、视图解析器(ViewReslover)、视图(View)这六大主要对象。他们负责对http请求做处理,具体流程如下图。 第一步:前端控制器dispatcher接受请求 Client---url--->Dispatcher 第二步:前端控制器去发起handler映射查找请求 Dispatcher---HttpServletRequest---> HandlerMapping 第三步:处理器映射器查找hanlder并返回HandlerExetuionChain Dispatcher <---HandlerExeutionChain---HandlerMapping 第四步:前端控制器发起请求处理器适配器请求执行 Dispatcher---Handler---> HandlerAdapter 第五步:处理器适配器去调用handler执行 HandlerAdapter---HttpServletRequest> Handler(Controller) 第六步:处理器处理后返回ModelAndView给HandlerAdapter

SpringMVC解析1-使用示例

…衆ロ難τιáo~ 提交于 2019-12-19 03:35:53
Spring MVC分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。Spring的MVC是基于servlet功能实现的,通过实现Servlet接口的DispatchSerlver来封装其核心功能实现,通过将请求分派给处理程序,同时带有可配置的处理程序映射,视图解析,本地语言,主题解析以及上载文件支持。默认的处理程序是非常简单的Controller接口,只有一个方法ModelAndView handleRequest(request,response)。Spring提供了一个控制器层次结构,可以派生子类。如果应用程序需要处理用户输入表单,可以继承AbstractFormController。如果需要把多页输入处理到一个表单,那么可以继承AbstractWizardFromController. SpringMVC或者其他比较成熟的MVC框架而言,解决的问题无外乎三点: 将web页面的请求传给服务器。 根据不同的请求处理不同的逻辑单元 返回处理结果数据并跳转至响应的页面。 在springmvc流程: 首先用户发送请求——>DispatcherServlet,前端控制器收到请求后自己不进行处理,而是委托给其他的解析器进行处理,作为统一访问点,进行全局的流程控制; DispatcherServlet——>HandlerMapping,

SpringMVC Controller 返回值的可选类型

核能气质少年 提交于 2019-12-17 20:15:31
spring mvc 支持如下的返回方式:ModelAndView, Model, ModelMap, Map,View, String, void。 ModelAndView @RequestMapping("/hello") public ModelAndView helloWorld() { String message = "Hello World, Spring 3.x!"; return new ModelAndView("hello", "message", message); } 通过ModelAndView构造方法可以指定返回的页面名称,也可以通过setViewName()方法跳转到指定的页面 Map @RequestMapping("/demo2/show") public Map<String, String> getMap() { Map<String, String> map = new HashMap<String, String>(); map.put("key1", "value-1"); map.put("key2", "value-2"); return map; } 在jsp页面中可直通过${key1}获得到值, map.put()相当于request.setAttribute方法。 View 可以返回pdf excel等,暂时没详细了解。

How do I addObject in Spring RedirectView

梦想与她 提交于 2019-12-17 20:01:06
问题 I'm kinda new to Spring and I'd like to know how to addOject in RedirectView just like in ModelAndView where I can add objects that can be used in views. mnv = new ModelAndView( FORM_URL ); mnv.addObject( "wpassbook", passbook ); return mnv; RedirectView redirectView = new RedirectView( "/credit" + FORM_URL ); return new ModelAndView( redirectView ); Anyway, here is the whole method: /** * Accepts POST request for this resource url. * * @param formBean bean containing values entered by the

Spring Boot 处理异常返回json

故事扮演 提交于 2019-12-17 17:36:12
spring boot 老版本处理异常 对于浏览器客户端,返回error数据 对于非浏览器返回json数据, 主要取决于你的请求head 是什么 但是当我们自定义了: 老版本无论请求什么都会返回json异常数据, @ControllerAdvice public class UserExceptionHandler { @ResponseBody @ExceptionHandler(UserNotFoundExits.class) public Map<String, Object> handleException(Exception e){ Map<String,Object> map = new HashMap<>(); map.put("code","user.notexist"); map.put("message",e.getMessage()); return map; } } 通过阅读源码, 新版本的异常处理 就是我们上面强制定义了 异常处理类 ,也会按照 浏览器返回error ,客户端返回json @RequestMapping( produces = {"text/html"} ) public ModelAndView errorHtml(HttpServletRequest request, HttpServletResponse response) {

SpringMVC之访问静态文件

泪湿孤枕 提交于 2019-12-17 10:52:54
我们在进行springMVC开发时,必定会在jsp页面引入js文件、img文件和css文件。大多数人会将这些分类存放在WebRoot文件下新建的文件夹下面。同时,会在web.xml文件中配置拦截所有请求。这样就造成了页面无法访问到js、img和css文件夹中的文件了。 在SpringMVC中可以利用 <mvc:resources location="/img/" mapping="/img/**"/>来访问。从而解决了上述问题。 下面是,我写的一个demo。 先看看其它文件。 web.xml(这个文件写好后几乎不用再进行修改了): <?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 "> <welcome-file-list> <welcome-file>index.jsp</welcome-file> <