@Controller @RequestMapping("/user") public class UserController { private UserRepository userRepository; @Autowired public UserController(UserRepository userRepository) { this.userRepository = userRepository; } /** * @param username * @return 根据user从持久层获取用户信息, username==null则返回一个新的user对象,否则从持久层加载User的信息 */ @ModelAttribute("user") public User loadModel(@RequestParam(value = "username", required = false) String username) { return username == null ? createUser() : userRepository.loadUserByUsername(username); } /** * @return 当username未提供时, 将返回一个新的User对象, * 因为模型在调用了{@link UserController#loadModel} 方法之后, * {@link org.springframework.web.method.annotation.ModelAttributeMethodProcessor}不会再为{@link UserController#save(com.feexon.domain.User)}方法创建User实例 */ private User createUser() { return new User(); } /** * 设置@ModelAttribute("user")绑定的属性,其他属性将被忽略 * * @param binder */ @InitBinder("user") public void setBindingProperties(DataBinder binder) { binder.setAllowedFields("password"); } @RequestMapping("/save") @ResponseBody public User save(@ModelAttribute("user") User user) { if (hasRegistered(user)) { userRepository.saveUser(user); } return user; } /** * 当user未注册时,{@link UserController#loadModel(java.lang.String)}返回的值为null. * * @param user * @return */ private boolean hasRegistered(User user) { return user != null; } }
相关推荐
Spring MVC允许你将应用的逻辑、数据和用户界面分离,使得代码更加清晰和易于维护。 MyBatis: MyBatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和手动设置...
Java SSM项目是一种使用Java语言和SSM框架(Spring + Spring MVC + MyBatis)开发的Web应用程序。SSM是一种常用的Java开发框架组合,它结合了Spring框架、Spring MVC框架和MyBatis框架的优点,能够快速构建可靠、...
分类专栏: java框架 文章标签: ...spring实现业务对象管理,mybatis作为数据对象的持久化引擎 springMVC执行流程: 1. 客户端将请求统一提交到DispatcherServlet; 2. DispatcherServlet会将请求交给HandlerMapping
spring +mybatis,是标准的MVC设计模式,将整个系统划分为显示层,Controller层,Service层,DAO层四层使用Spring MVC负责请求的转发和视图管理spring实现业务对象管理,mybatis作为数据对象的持久化引擎。...
无论是持久持久化存储,还是数据访问对象(或称作为DAO) ,即数据访问对象)通常都会提供对单个域对象的CRUD(创建,读取,更新,删除)操作,查询方法,排序和分页方法等。 Spring Data则提供了基于这些常规的统一...
其中使用Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,控制业务跳转,利用Hibernate框架对持久层提供支持,Spring做管理,管理struts和hibernate。具体做法是:用面向对象的分析方法根据...
Spring MVC简介 基于java的实现MVC设计模式的请求驱动类型的轻量级Web框架,通过注解,无需实现任何接口,处理请求,支持restful。 三层结构:表现层、业务层、持久层 设计模式:Model(模型)、View(视图)、...
Spring MVC简介 基于java的实现MVC设计模式的请求驱动类型的轻量级Web框架,通过注解,无需实现任何接口,处理请求,支持restful。 三层结构:表现层、业务层、持久层 设计模式:Model(模型)、View(视图)、...
Spring MVC简介 基于java的实现MVC设计模式的请求驱动类型的轻量级Web框架,通过注解,无需实现任何接口,处理请求,支持restful。 三层结构:表现层、业务层、持久层 设计模式:Model(模型)、View(视图)、...
WEB层采用Spring MVC框架,将查询到的数据传递给APP端或客户端,这没啥,但是坑的是实体类中有日期类型的属性,但是你必须提前格式化好之后返回给它们。说真的,以前真没这样做过,之前都是一口气查询到数据,然后...
Spring3.0是Spring在积蓄了3年之久后,隆重推出的一个重大升级版本,进一步加强了Spring作为Java领域第一开源平台的翘楚地位。 Spring3.0引入了众多Java开发者翘首以盼的新功能和新特性,如OXM、校验及格式化框架...
Dto.java和其他类-用于在J2EE应用程序的业务和持久性层之间与视图(使用EL-Expression Language“层)进行数据传输。Dto从Java API的HashMap类扩展,用于通过键封装任何类型的信息类型:key_i.key_ij.key_ijk ....:...
Spring MVC简介 基于java的实现MVC设计模式的请求驱动类型的轻量级Web框架,通过注解,无需实现任何接口,处理请求,支持restful。 三层结构:表现层、业务层、持久层 设计模式:Model(模型)、View(视图)、...
Spring 提供了管理业务对象的一致方法,并鼓励注入对接口编程而不是对类编程的良好习惯,使我们的产品在最大程度上解耦。Hibernate 是用来持久化数据的,提供了完全面向对象的数据库操作。Hibernate对JDBC进行了非常...
Spring MVC简介 基于java的实现MVC设计模式的请求驱动类型的轻量级Web框架,通过注解,无需实现任何接口,处理请求,支持restful。 三层结构:表现层、业务层、持久层 设计模式:Model(模型)、View(视图)、...
Spring MVC简介 基于java的实现MVC设计模式的请求驱动类型的轻量级Web框架,通过注解,无需实现任何接口,处理请求,支持restful。 三层结构:表现层、业务层、持久层 设计模式:Model(模型)、View(视图)、...
Spring MVC简介 基于java的实现MVC设计模式的请求驱动类型的轻量级Web框架,通过注解,无需实现任何接口,处理请求,支持restful。 三层结构:表现层、业务层、持久层 设计模式:Model(模型)、View(视图)、...
Spring MVC简介 基于java的实现MVC设计模式的请求驱动类型的轻量级Web框架,通过注解,无需实现任何接口,处理请求,支持restful。 三层结构:表现层、业务层、持久层 设计模式:Model(模型)、View(视图)、...
Spring MVC简介 基于java的实现MVC设计模式的请求驱动类型的轻量级Web框架,通过注解,无需实现任何接口,处理请求,支持restful。 三层结构:表现层、业务层、持久层 设计模式:Model(模型)、View(视图)、...