@Controller控制层
@Service业务逻辑层
@Repository持久层(也就是dao层)
@Entity实体
@PathVariable
@RequestParam
@RequestMapping
@Autowired
@SuppressWarning废弃警告
@ModelAttribute注释的值在此Controller中每个方法执行前被执行,因此对于一个Controller映射多个URL的用法来说需谨慎使用(此注释的value值就是Model的属性的名称)
@SessionAttributes作用就是在Controller中共享Model属性
public String test1(@ModelAttribute("user") UserModel user) 只是此处多了一个注解@ModelAttribute("user"), 它的作用是将该绑定的命令对象以“user”为名称
@ModelAttribute可以在方法上使用和在方法参数上使用还有方法和参数上同时使用
(1)方法参数上使用 @requestMapping("b") public String add(@ModelAttribute "a"){ return "result"; } 会先从model中获取key为a的对象,如果获取不到就反射实例化一个对象
(2)方法上使用 @ModelAttribute("user2") public User addUser(User user){ user.setName("meihf"); return user; } 这样的话在Controller中使用@RequestMapping方法前都会执行这个方法,而且会添加两个对象到Model先添加key为user的对象,再添加key为user1的对象
(3)在方法和方法参数上都有 @ModelAttribute("user1") public User addUser(User user) { return new User(520,"I love U"); } @RequestMapping("/save") public String save(@ModelAttribute User user) { user.setUsername("U love me"); userService.save(user); return "result"; } 假设要执行保存用户操作,根据一分析可知,先执行完会产生两个User类型的对象(一个key是"user",另一个key是"user1")添加到model, 再执行save方法,此时会先从model去找key为"user"的对象,能找到再从request取值set到这个User对象.最后返回到jsp页面,model里也只有两个User类型对象.
@Controller @RequestMapping("user") @SessionAttributes("test") public class UserController { @RequestMapping(value = "test1") public String test1(HttpServletRequest request) { User user = new User("xiejx618"); request.getSession().setAttribute("test",user); return "user/list"; } @RequestMapping(value = "test2") public String test2(@ModelAttribute("test") User user,SessionStatus sessionStatus) { System.out.println(user.getUsername()); sessionStatus.setComplete(); return "user/list"; } } Session 属性的 controller 上加上 @SessionAttributes,然后在 action 需要的 User 参数上加上 @ModelAttribute,并保证两者的属性名称一致。 SpringMVC 就会自动将 @SessionAttributes 定义的属性注入到 ModelMap 对象, 使用这种方案,还需要在 SpringMVC 配置文件的 ViewResolver 定义处
, 加上 p:allowSessionOverride="true"
@Controller public class GameController { @Autowired public void setGameService(GameService gameService) { this.gameService = gameService; } @RequestMapping("{level}/ShowPrize") public String getPrizeByLevel(@PathVariable int level,HttpServletRequest request){ System.out.println(level+"Controller"); int prize=gameService.getPrizeByLevel(level); request.setAttribute("prize",prize); return "ShowPrize"; } } 重点讲一下PathVariable和RequestParam: 他们都有共同的特点像上面没有指明参数的时候PV会默认从url中找与变量名同名的值,RP是从request请求中寻找:完整的应是:@PathVariable("level") int level如果方法参数的名称跟RequestMapping中定义的访问路径中的变量名不一样,或者我要利用PathVariable明确指定后面接的方法参数是对应于URL中的哪个变量就应该这样表示。
相关推荐
在项目结构中,通常会有一个 `springmvc-config.xml` 文件用于配置Spring MVC的相关设置,如视图解析器、拦截器、数据源、事务管理器等。同时,还会有一个 `mybatis-config.xml` 文件用于配置MyBatis,包括数据源、...
在本项目中,MyBatis作为数据库操作的工具,通过XML或注解方式定义SQL查询,与Spring结合使用时,可以实现声明式事务管理,提高数据操作的稳定性。 EasyUI是一个基于jQuery的前端UI库,提供了一系列美观的组件,如...
标题提及的"逆向工程生成加数据库中的备注和小驼峰法",意味着在生成的代码中不仅包含了数据库表的字段,还包含了字段的注释信息,这些注释通常来源于数据库表的字段备注,这对于理解和维护代码非常有帮助。...
产品编号(ProductID,Integer),用户编号(UserID,Integer),交易日期(TransactionDate,Date),价格(Price,Double),数量(Quantity,Long),交易金额(TransactionAmount,Double),用户邮件(Email,String),备注...
MyBatis允许开发者编写动态SQL,可以直接在映射文件或者注解中编写SQL语句,使得数据库操作更加灵活。在本系统中,MyBatis作为数据访问层,与数据库进行交互,实现财务数据的增删改查。 **4. JSP(JavaServer Pages...
开发者可以直接使用这个脚手架开始编写业务代码,同时,由于备注了详细的讲解,对于初学者来说,理解SSM框架的工作原理也更加容易。 6. **开发流程**: 使用SSM框架进行开发时,通常遵循以下步骤:创建数据库表,...
MyBatis是一个轻量级的ORM(Object-Relational Mapping)框架,它允许开发者将SQL语句与Java代码分离,通过XML配置文件或注解将Java对象映射到数据库表,简化了数据库操作。在家庭财务收支管理系统中,MyBatis可能会...
4. **MyBatis**:MyBatis是一个持久层框架,它简化了Java与数据库之间的交互,允许开发者通过XML或注解配置SQL语句。在本项目中,MyBatis用于执行数据库操作,如添加、删除、更新和查询财务记录。 5. **数据库设计*...
开发者可以通过注解的方式轻松配置控制器,实现RESTful API。 3. **MyBatis**:MyBatis是一个持久层框架,它允许开发者将SQL语句直接写在XML配置文件或者Java代码中,实现了SQL与代码的分离,简化了数据库操作。在...
MyBatis可以使用简单的XML或注解进行配置和原始映射,将接口和Java的POJOs(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。 4. **Vue.js**:这是一个用于构建用户界面的渐进式框架,其特点是轻量级...
1)SSM注解开发的高级知识讲解: 2)商城小项目,使用Maven构建项目: 3)基于SSM的人事管理系统,适合初学者第一个实战项目: 4)Maven的搭建+用SpringMVC春+ MyBatis的框架,添加四郎权限控制,AOP日志...
- 数据库通常会包含电子书籍的信息(如ID、书名、作者、内容等),敏感词库(敏感词、等级、备注等),以及审查记录(书籍ID、审查时间、敏感词列表等)。 - MyBatis的XML配置文件或注解会用来定义SQL映射,实现...
Guns基于SpringBoot,致力于做更简洁的后台管理系统,完美整合springmvc + shiro + mybatis-plus + beetl!Guns项目代码简洁,注释丰富,上手容易,同时Guns包含许多基础模块(用户管理,角色管理,部门管理,字典管理等10个...
- SpringMVC - Spring - MyBaits - MyBatis Generator - MyBatis PageHelper - Druid - Lombok - JWT - Spring Security - JavaMail - Thymeleaf - HttpClient - FileUpload - Spring Scheduler - Hibernate ...
- 系统后端框架有Spring Boot,Spring, SpringMVC,MyBatis; 前段框架有Bootstrap,Jquery, Layer, Vue。项目完全纯注解,零XML配置。 > 第一次运行系统,请先运行 [SQL代码](/mysql/efo.sql) , 并登陆系统修改...
对Spring4的全方位练习,直接跳到注解版的Spring,跳过了Xml的配置 SpringWeb的练习,熟悉语法,加深对SpringBoot的理解 SpringBoot的各个模块的练习,持续更新中 Java集成Netty的练习,需要熟练掌握这个高性能的...
【标题】中的“基于java web+ssm个人财务管理系统”表明这是一个使用Java Web技术栈,特别是Spring、SpringMVC和MyBatis(SSM框架)开发的个人财务管理系统的项目。这个系统旨在帮助用户管理和追踪他们的财务状况。 ...
后端使用SpringMVC拦截器+jwt+自定义注解实现身份验证和权限控制。用户每次登录成功后,后端会返回token交由前端缓存,前端对后端相关接口发起的每次请求都需要携带该token进行验证。 系统使用二维码来充当接种者...