今天在使用数据库的时候,遇到一个场景,即在插入数据完成后需要返回此数据对应的自增主键id,但是在使用Mybatis中的generatedKey且确认各项配置均正确无误的情况下,每次插入成功后,返回的都是...终于凭借着一次Debugg发现的问题,原来在使用Mabatis中的insert或者insertSelective方式插入时,如使用int insert(TestGenKey testGenKey)时,返回值...int表示的是插入操作受影响的行数,而不是指的自增长id,那么返回的自增id到底去哪里了呢?...通过下面的Debugg我们知道自增id返回到testGenKey的原对象中去了。 举例示范配置 数据库示例表 generator的配置文件 <?...null : sex.trim(); } } 测试及Debugg 编写测试方法测试插入 插入成功后观察对应的变量对应的值 总结:调用Insert后插入操作之后,所得到自增长Id被赋值到原对象当中
当它用于方法参数时,它表示将请求参数绑定到方法参数上;当它用于方法上时,它表示将返回的对象添加到模型中。...在方法参数上使用 ModelAttribute@GetMapping("/user")public String getUser(@ModelAttribute("userId") int userId...", "value1"); model.addAttribute("attribute2", "value2");}populateModel 方法返回的对象会被添加到模型中,并在视图中使用。...用途不同:ModelAttribute 主要用于绑定数据到模型中,适用于在视图中显示数据;RequestBody 主要用于接收 JSON 或 XML 格式的数据,适用于 RESTful API 开发等场景...比如在处理前台表单数据时,可以选择使用ModelAttribute注解来封装数据并将其映射到后端对象中;而在处理HTTP请求时,可以选择使用RequestBody注解来获取客户端提交的数据,以实现前后端数据的交互
/assets/img/1.png"> 然后我们创建MVCConfig类,作用还是和上文一样,不同的是这次我们继承自WebMvcConfigurerAdapter...构造ModelAndView时传入的error表示出错的页面。...同时这里的参数还使用了@ModelAttribute注解,这个注解我在下一小节再来说。...head> 出错啦 ${errorMsg} 这个页面很简单,就显示一下错误信息就行了...(通过对象接收这个参数的时候才会屏蔽掉id),如果直接提取还是可以提取到的,我们来看一下控制器方法,还是刚才抛异常那个方法,但是在抛异常之前我先打印一下日志: @RequestMapping("/user
下面我以我的理解,总结一下 @ModelAttribute这个注解的作用,主要分为如下三个方面: 绑定请求参数到命令对象(入参对象):放在控制器方法的入参上时,用于将多个请求参数绑定到一个命令对象,从而简化绑定流程...,而且自动暴露为模型数据用于视图页面展示时使用; 暴露表单引用对象为模型数据:放在处理器的一般方法(非功能处理方法,也就是没有@RequestMapping标注的方法)上时,是为表单准备要展示的表单引用数据对象...它在执行功能处理方法(@RequestMapping 注解的方法)之前,自动添加到模型对象中,用于视图页面展示时使用; 暴露@RequestMapping方法返回值为模型数据:放在功能处理方法的返回值上时...这个注解,因此有必须先把它介绍一波: 官方解释:构造函数上的注释,显示该构造函数的参数如何对应于构造对象的getter方法。...,显示的告诉你要去排错。
) @ModelAttribute具有如下三个作用: ①绑定请求参数到命令对象:放在功能处理方法的入参上时,用于将多个请求参数绑定到一个命令对象,从而简化绑定流程,而且自动暴露为模型数据用于视图页面展示时使用...“user”为名称添加到模型对象中供视图页面展示使用。...②暴露@RequestMapping 方法返回值为模型数据:放在功能处理方法的返回值上时,是暴露功能处理方法的返回值为模型数据,用于视图页面展示时使用。...注解方法中的 @ModelAttribute 注解的同名命令对象 ③暴露表单引用对象为模型数据:放在处理器的一般方法(非功能处理方法)上时,是为表单准备要展示的表单引用对象,如注册时需要选择的所在城市等...,而且在执行功能处理方法( @RequestMapping 注解的方法)之前,自动添加到模型对象中,用于视图页面展示时使用;
这个机制对于表单提交数据绑定到对象属性上很有效。 当@ModelAttribute注解用于方法参数时,它有了双重功能,即“存/取”。...当请求路径的请求参数或提交的表单与BaseMember的属性名匹配时,将自动将其值绑定到baseMember对象中,非常的便利!这可能是我们使用@ModelAttribute最主要的原因之一。...4.3 @ModelAttribute注解的使用场景 当@ModelAttribute注解用于方法时,与其处于同一个处理类的所有请求方法执行前都会执行一次此方法,这可能并不是我们想要的,因此,我们使用更多的是将其应用在请求方法的参数上...一般在异步获取数据时使用,在使用@RequestMapping后,返回值通常解析为跳转路径,加上@Responsebody后返回结果不会被解析为跳转路径,而是直接写入HTTP response body...使用时机: 返回的数据不是html标签的页面,而是其他某种格式的数据时(如json、xml等)使用;
* 相对于类定义处的URL,若类定义处未标注 @RequestMapping,则方法标记处的URL相对于WEB应用的根目录。...SpringMVC 会一 value 为 key, POJO 类型的对象为 value, 存入到 request 中. */ @ModelAttribute public void...3.SpringMVC把上述对象传入目标方法的参数 * 注意:在ModelAttribute修饰的方法中,放入到Map的键需要和目标方法入参类型的第一个小写字母的字符串一致。...* 2).若使用了@ModelAttribute来修饰,则key为@ModelAttribute注解的value属性值。...* 2.在implicitModel中查找key对应的对象,若存在,则作为入参传入 * 3.若implicitModel不存在key对应的对象,则检查当前的Handler是否使用了@SessionAttribute
执行 @ModelAttribute 修饰的方法:模拟数据库取出行为,将user对象存储到map中,键为 user * 2....然后在渲染页面时,模拟回显数据,将model中的数据取出并显示在页面,并把表单的请求参数赋给User对象的对应属性 * 3. sprinngMVC 最后把上述对象传入目标方法的参数...* 要注意的是:在存入map时,map的键值要和被@RequestMapping("/testModelAttribute")修饰的目标方法入参类型的第一个字符串的字符串一致 * @param...= null){ // 模拟从数据库中获取对象 User user = new User(1,"Tom","123456","aa@aa.com",12)...; System.out.println("从数据库中获取一个对象:" + user); map.put("user",user); }
注意:@Controller原型只能在Spring的配置文件中启用注解驱动时使用: 启用注释驱动时,Spring容器自动在以下语句指定的包下扫描类: 由@Controller 注释注释的类被配置为控制器...当在类级别使用此注解时,该类将成为单动作控制器。例如: 当@RequestMapping 注解在方法级别使用的,你可以有一个多动作控制器。...Spring使用此映射存储模型的对象。让我们看另一个例子: 这比使用ModelAndView 对象还要简单 。根据你的喜好,可以使用Map 或 使用 ModelAndView 对象。...下面的代码片段显示了一种典型的处理程序方法,该方法负责处理和验证表单数据: 从Spring的官方文档中了解有关@ModelAttribute 注释和BindingResult 接口的更多信息: 在方法参数上使用...@ModelAttribute 在方法上使用@ModelAttribute 接口绑定结果 11.处理文件上传 通过自动将上传数据绑定到CommonsMultipartFile 对象数组,Spring
若类定义处未标注 @RequestMapping,则方法处标记的 URL 相对于WEB 应用的根目录 (3)@RequestMapping 除了可以使用请求 URL 映射请求外,还可以使用 请求方法...时,处理方法返回时,Map中的数据会自动添加到模型中。...(以便被前台页面接收) 3.注意:在@ModelAttribute 修饰的方法中,放入到Map时的键需要和目标方法入参类型的第一个字母小写的字符串一致。... 在方法的入参前使用 @ModelAttribute 注解:可以从隐含对象中获取隐含的模型数据中获取对象,再将请求参数 –绑定到对象中,再传入入参将方法入参对象添加到模型中 8....十六、表单的验证(使用Hibernate-validate)及国际化 1.导入Hibernate-validate需要的jar包 ? (未选中不用导入) ?
可对象中的参数名有的相同,后台接收入参时无法像struts那样jsp表单中使用Object.Param形式对表单进行精准绑定入参(struts2默认就是这种方案),因为struts2采用了OGNL,并通过栈...(根对象)进行操作,栈中默认有action实例,所以无此问题。...现在以前台表单提交两个对象为例。...DataBinder,如我们的@ModelAttribute("user1") User user1 将使用@InitBinder("user1")指定的DataBinder绑定;如果不指定value值...map.put("user", user); map.put("addr", addr); return map; } --------------------- 转自:
(1)对方法使用 @ModelAttribute 注解: 注解在方法上的@ModelAttribute说明了方法的作用是用于添加一个或多个属性到model上。...@ModelAttribute(“key”) 来显示指定属性名。...② 和 BindingResult 配合使用 使用 @ModelAttribute 进行数据绑定之后,可以使用 BindingResult 来返回数据验证结果。...或者自定义校验器来返回 BindingResult 对象来进行校验。你可以通过Spring的 表单标签来在同一个表单上显示错误信息。...@basic注解有两个属性: fetch用来指定属性的加载机制 有两个选项:EAGER(即时加载,默认值)和LAZY(懒加载),即时加载意味着当实例化对象的时候必须加载该属性值,懒加载是指当实例化对象时不加载该对象
如果form:form标签省略action属性,那么会使用当前表单所在页面的URL地址作为action属性的值。...②modelAttribute属性 该标签无论是执行保存还是更新操作,都要从请求域中读取模型数据。如果没有设置modelAttribute属性那么就以command为属性名从请求域中读取。...所以要想form:form标签正常工作一定要将一个模型对象保存到请求域中,哪怕是保存数据时也要创建一个空对象保存。...:显示表单所有的错误 :显示所有以user为前缀的属性对应的错误 :显示特定表单对象属性的错误
,拥有这个属性 这个对象就是请求域中的command的值,没有就报错,错误如下: 在隐含模型中放入command对象 以前我们表单标签会从请求域中获取一个command对象,把这个对象中每一个属性对应的显示在页面上...可以告诉SpringMVC不要去取command的值了,我放了一个modelAttribute指定的值,取对象用的key就使用我modelAttribute指定的 演示: 点击提交按钮,对数据进行保存...--默认第一次访问时创建对象,这里填入1,表示服务器启动时创建镀锡--> 1 modelAttribute指定的值,取对象用的key就使用我modelAttribute指定的 演示: EmployeeController...--默认第一次访问时创建对象,这里填入1,表示服务器启动时创建镀锡--> 1
* * 注意: 在 @ModelAttribute 修饰的方法中, 放入到 Map 时的键需要和目标方法入参类型的第一个字母小写的字符串一致!...若使用了 @ModelAttribute 来修饰, 则 key 为 @ModelAttribute 注解的 value 属性值. * 2....若 implicitModel 中不存在 key 对应的对象, 则检查当前的 Handler 是否使用 @SessionAttributes 注解修饰, * 若使用了该注解, 且 @SessionAttributes...该注解有两个用法,一个是用于方法上,一个是用于参数上; 用于方法上时: 通常用来在处理@RequestMapping之前,为请求绑定需要从后台查询的model(例如实现部分更新的功能); 用于参数上时...用于方法上时指定的model对象; C) 上述两种情况都没有时,new一个需要绑定的bean对象,然后把request中按名称对应的方式把值绑定到bean中。
对象存储中配置自定义域名支持 HTTPS 访问 用户可通过自有域名(自定义域名,如test.cos.com)访问存储桶(Bucket)下的对象(Object)。...具体操作指引如下: · 开启 CDN 加速时配置自定义域名支持 HTTPS 访问 · 关闭 CDN 加速时配置自定义域名支持 HTTPS 访问 开启 CDN 加速 一、绑定自定义域名 将存储桶绑定到您的自有域名...若您使用的是腾讯云云解析,请前往 云解析控制台,将域名test.cos.com解析到步骤二中的服务器的 IP 上,指引参考 域名解析。...进阶配置 通过浏览器直接打开网页 在配置好自定义域名支持 HTTPS 访问后,就可以通过您的域名下载存储桶(Bucket)中的对象(Object)了。...proxy_set_header Referer www.test.com; 设置完成后,直接打开文件会报错:errorcode:-46616;错误提示:未命中 refer 白名单。
注意:@Controller原型只能在Spring的配置文件中启用注解驱动时使用: 启用注释驱动时,Spring容器自动在以下语句指定的包下扫描类: 使用此注解时,该类将成为单动作控制器。...Spring使用此映射存储模型的对象。...根据你的喜好,可以使用Map 或 使用 ModelAndView 对象。在这里要感谢Spring的灵活性。...注释和BindingResult 接口的更多信息: 在方法参数上使用@ModelAttribute 在方法上使用@ModelAttribute 接口绑定结果 11 处理文件上传 通过自动将上传数据绑定到
注意:@Controller原型只能在Spring的配置文件中启用注解驱动时使用: 启用注释驱动时,Spring容器自动在以下语句指定的包下扫描类: 使用此注解时,该类将成为单动作控制器。...Spring使用此映射存储模型的对象。...根据你的喜好,可以使用Map 或 使用 ModelAndView 对象。在这里要感谢Spring的灵活性。...注释和BindingResult 接口的更多信息 : 在方法参数上使用@ModelAttribute 在方法上使用@ModelAttribute 接口绑定结果 11.处理文件上传 通过自动将上传数据绑定到
@ModelAttribute一个具有如下三个作用: ①绑定请求参数到命令对象:放在功能处理方法的入参上时,用于将多个请求参数绑定到一个命令对象,从而简化绑 定流程,而且自动暴露为模型数据用于视图页面展示时使用...; ②暴露表单引用对象为模型数据:放在处理器的一般方法(非功能处理方法)上时,是为表单准备要展示的表单引用 对象,如注册时需要选择的所在城市等,而且在执行功能处理方法(@RequestMapping 注解的方法...)之前,自动添加 到模型对象中,用于视图页面展示时使用; ③暴露@RequestMapping 方法返回值为模型数据:放在功能处理方法的返回值上时,是暴露功能处理方法的返回值为 模型数据,用于视图页面展示时使用...被@ModelAttribute注释的方法会在此controller每个方法执行前被执行,因此对于一个controller映射多个URL的用法来说,要谨慎使用。 ...,然后使用spring mvc的自动组装功能,组装User对象,这样在客户端提交了值的属性才会被组装到对象中。
@RequestBody @RequestBody接收的是一个Json对象的字符串,而不是一个Json对象。...同时ajax请求的时候也要指定dataType: "json",contentType:"application/json"这样就可以轻易的将一个对象或者List传到Java端,使用@RequestBody...使用在方法上时,每次调用这个类中的action时,都会先执行这个方法 使用在无返回类型方法上时@Controller public class HelloModelController { @...populateModel方法,并把前台abc 设置到attributeName 属性中,然后再调用helloWorld方法,前台页面可以直接都去attributeName的值使用在有返回类型的方法上时...(value="useraaaa")或者ModelAttribute("useraaaa")这样的话加入model中的key就是useraaa了 使用在方法参数上@Controller public class
领取专属 10元无门槛券
手把手带您无忧上云