SpringMVC的@SessionAttributes和@ModelAttribute用法
来源:互联网 发布:java程序员累吗 编辑:程序博客网 时间:2024/06/17 20:59
test.jsp
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%><form action="/save" method="post" enctype="multipart/form-data"> <div class="form-group"> <label class="sr-only" for="name">Name</label> <input type="text" class="form-control" id="name" placeholder="Name" name="name" value="${user.name }" required> </div> <button type="submit" class="btn btn-primary">确认</button></form>
TestController .java
import com.example.model.User;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.*;/** * @author Administrator * */@Controller@RequestMapping(value = "/")@SessionAttributes(value = {"user"})public class TestController { @RequestMapping(value = "/create", method=RequestMethod.GET) public String create(final Model model) { User user = new User(); model.addAttribute("user", user); /** * 因为编辑时我们把数据存放在 @SessionAttribute, 如果这里不new一个User, 那么当点击了编辑之后(无论是否保存),再回到创建页面,会发现自动带出了编辑的那条数据 * * 有另一种做法,这里不new User(), 但是要传入一个SessionStatus sessionStatus作为参数,方法中加入 * sessionStatus.setComplete(); * 这行代码,但这种做法有个问题,就是必须调用两次/create, 才可以清空表单数据 * 另外,就是如果取掉下面两行代码,则/save时必须判断user是否为null,否则会报空指针异常(注意:即使这里没有new User,页面上使用了${user.id}也不会出现空指针异常) */ return "test"; } @RequestMapping(value = "/update/{id}", method=RequestMethod.GET) public String update(final Model model, @PathVariable(value = "id") final Integer id) { User user = new User(); user.setId(id); user.setName("模拟数据,实际应根据id从数据库查询"); model.addAttribute("user", user); return "test"; } @RequestMapping(value = "/save", method=RequestMethod.POST) public String save(@ModelAttribute(value = "user") final User user) { System.out.println(user.getId() + " " + user.getName()); return "redirect:/"; }}
User.java
public class User { private Integer id; private String name; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name == null ? null : name.trim(); }}
测试
创建
访问:/create
输入:张
点击确认,输出:null 张
编辑
访问:/update/1
点击确认,输出:1 模拟数据,实际应根据id从数据库查询
注意:在点击确认,后台调用/save时,页面并没有id参数,那么输出的id值从何而来,所以只能是从@SessionAttributes(value = {“user”})中取
阅读全文
0 0
- SpringMVC的@SessionAttributes和@ModelAttribute用法
- @ModelAttribute和@SessionAttributes的用法
- springMVC session的应用@SessionAttributes和@ModelAttribute
- springMVC session的应用@SessionAttributes和@ModelAttribute
- springMVC session的应用@SessionAttributes和@ModelAttribute
- springmvc @SessionAttributes和@ModelAttribute的正确使用
- SpringMVC的@ModelAttribute和@RequestParam、@PathVariable、@CookieValue、@SessionAttributes
- SpringMVC中@ModelAttribute和@SessionAttributes注解的使用
- SpringMVC中@ModelAttribute和@SessionAttributes注解的使用
- springmvc中@ModelAttribute和@SessionAttributes标签的使用
- @SessionAttributes和@ModelAttribute
- @SessionAttributes和@ModelAttribute
- @ModelAttribute和@SessionAttributes
- 关于@SessionAttributes和@ModelAttribute最好的文章了
- SpringMVC的@@ModelAttribute的用法
- maven与springMVC之ModelAttribute、SessionAttributes
- springMVC注解@ModelAttribute的用法
- 关于@ModelAttribute跟@SessionAttributes的应用
- 欢迎使用CSDN-markdown编辑器
- codeIgniter手动加载config里面的配置
- 开发自定义View 数字键盘
- 【Nanopi Duo】+shell脚本登入
- 云计算面临的问题,可能会被什么技术取代...
- SpringMVC的@SessionAttributes和@ModelAttribute用法
- CentOS7 LNMP环境搭建
- 第一篇博客
- stm32时钟树以及修改系统时钟频率
- JAVA随笔记(2)EnumMap
- 学习 IDA 使用
- 重磅推荐:物联网行业深度研究报告(四)
- java 自我知识总结(八)数组的复制
- 编写一个程序,可以通过次程序完成一个表的创建操作,输入表的名称,各个列的名称及类型,输入完成后直接通过JDBC创建指定的表。