springboot-基础-添加model和controller的简单例子+常用注解含义

备份笔记。所有代码都是2019年测试通过的,如有问题请自行搜索解决!

上一篇:springboot-基础-eclipse配置+helloword示例


目录

  • 添加model和controller的例子
  • 注解开发
    • 使用@RestController 大坑
  • Model ModelMap和ModelAndView的区别

添加model和controller的例子

文件结构:
在这里插入图片描述

User.java

package com.example.demo.model;public class User {private String name;private String sex;private String hobby;public User() {super();}public User(String name, String sex, String hobby) {super();this.name = name;this.sex = sex;this.hobby = hobby;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}public String getHobby() {return hobby;}public void setHobby(String hobby) {this.hobby = hobby;}}

UserController.java


package com.example.demo.controller;import com.example.demo.model.User;
import java.util.ArrayList;
import java.util.List;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.ui.Model;@Controller
public class UserController {@RequestMapping(value="/user")public String index(Model model) {List<User> users = new ArrayList<User>();users.add(new User("name1", "male", "略略略"));users.add(new User("name2", "female", "singing"));users.add(new User("小猪佩奇", "雄性", "社会人"));model.addAttribute("users", users);return "user";}}

user.html


<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head><meta charset="UTF-8" /><title>test</title>
</head>
<body><table><tr><td>Name</td><td>Sex</td><td>Hobby</td><td>性别</td></tr><tr th:each="user:${users}" th:object="${user}"><td th:text="${user.name}"></td><td th:text="${user.sex}"></td><td th:text="${user.hobby}"></td><!-- 这里类似模糊查找 --><td th:text="*{name}"></td></tr></table>
</body>
</html>

application properties添加一点配置:

#国际化配置
spring.messages.basename=i18n/messages
spring.messages.encoding=UTF-8

结果:
在这里插入图片描述

注解开发

restful风格是一种开发想法,现行技术并没有完全实现。注解就是下表中的一些标记,这些标记带有特殊功能。

在这里插入图片描述
<context:component-scan/>标签默认情况下自动扫描指定路径下的包(含所有子包),将带有@Component@Repository@Service@Controller标签的类自动注册到spring容器。对标记了 Spring’s @Required@Autowired、JSR250’s @PostConstruct@PreDestroy@Resource、JAX-WS’s @WebServiceRef、EJB3’s @EJB、JPA’s @PersistenceContext@PersistenceUnit等注解的类进行对应的操作使注解生效(包含了annotation-config标签的作用)。

使用@RestController 大坑

这个注解相当于@ResponseBody 和 @Controller两个注解的组合,不返回视图,只返回数据。如果一个类上加了这个注解,那么这个类的函数都是返回不了视图的,return "redirect:/seq_tool/seq_order_details";也会只在页面上显示return的字符串。

解决方法是把类上的注解改为@Controller,然后给不返回视图,只返回数据的函数加上注解@ResponseBody,如

@RequiresPermissions("seq_tool:getcfmd")
@PostMapping(value="/getcfmd")
@ResponseBody
public PageResult getCfmd(String userid) {SeqOrderConditionVO vo = new SeqOrderConditionVO();PageInfo<SeqOrder> pageInfo = sysSeqOrderService.listCfmdByUserId(userid, vo);return ResultUtil.tablePage(pageInfo);
}

Model ModelMap和ModelAndView的区别

在这里插入图片描述

例子

  • model
 @RequestMapping(value = "/index1")public String index1(Model model) {model.addAttribute("result", "后台返回index1");return "result";}
  • ModelMap
@RequestMapping(value = "/index2")public String index2(ModelMap model) {model.addAttribute("result", "后台返回index2");return "result";}
  • ModelAndView
@RequestMapping(value = "/index3")public ModelAndView index3() {ModelAndView mv = new ModelAndView("result");// ModelAndView mv = new ModelAndView();// mv.setViewName("result");mv.addObject("result", "后台返回index3");return mv;}
@RequestMapping(value = "/index4")public ModelAndView index4() {Map<String, String> map = new HashMap<String, String>();map.put("result", "后台返回index4");return new ModelAndView("result", map);}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2814778.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

ubuntu常见配置

ubuntu各个版本的安装过程大差小不差&#xff0c;可以参考&#xff0c;ubuntu20.04 其它版本换一下镜像版本即可 安装之后需要配置基本的环境&#xff0c;我的话大概就以下内容&#xff0c;后续可能有所删改 sudo apt-get update sudo apt-get install gcc sudo apt-get inst…

流模型 Flow 超详解,基于 Flow 的生成式模型,从思路到基础到公式推导到模型理解与应用(Flow-based Generative Model)

参考文献&#xff1a; [1] Dinh L, Krueger D, Bengio Y. Nice: Non-linear independent components estimation[J]. arXiv preprint arXiv:1410.8516, 2014. [2] Dinh L, Sohl-Dickstein J, Bengio S. Density estimation using real nvp[J]. arXiv preprint arXiv:1605.08803…

测试开发(6)软件测试教程——自动化测试selenium(自动化测试介绍、如何实施、Selenium介绍 、Selenium相关的API)

接上次博客&#xff1a;测试开发&#xff08;5&#xff09;测试分类标准 &#xff1a;按测试对像划分、按是否查看代码划分、按开发阶段划分、按测试实施组织、按是否运行划分、按是否手工划分、按测试地域划分-CSDN博客 目录​​​​​​​ 什么是自动化测试 自动化测试介绍…

echarts图表用key强制刷新后空白

我的需求是echarts图表全屏后退出全屏在edge浏览器上没有什么问题但是在Chrome浏览器上会出现表格的线不能变回原来的比例的问题 我就想在退出全屏的时候强制刷新一下echarts图表外面的这个div useEffect(() > {if (col) {col.addEventListener("webkitfullscreenchan…

水电表远程集中抄表管理系统

水电表远程集中抄表管理系统是当前水电行业智能化发展的关键技术之一&#xff0c;为水电企业和用户提供了便捷、高效的抄表管理解决方案。该系统结合了远程监控、自动抄表、数据分析等多种功能&#xff0c;实现了水电抄表的智能化和精准化&#xff0c;为用户节省了大量人力物力…

golang学习5,glang的web的restful接口

1. //返回json r.GET("/getJson", controller.GetUserInfo) package mainimport (/*"net/http"*/"gin/src/main/controller""github.com/gin-gonic/gin" )func main() {r : gin.Default()r.GET("/get", func(ctx *…

第五节:Vben Admin权限-前端控制方式

系列文章目录 第一节:Vben Admin介绍和初次运行 第二节:Vben Admin 登录逻辑梳理和对接后端准备 第三节:Vben Admin登录对接后端login接口 第四节:Vben Admin登录对接后端getUserInfo接口 第五节:Vben Admin权限-前端控制方式 文章目录 系列文章目录前言一、Vben Admin权…

【极客技术】前 Twitter 工程师正在构建 Particle,一款由人工智能驱动的新闻阅读器

Particle.news是一个由前Twitter工程师领导的团队创建的新型企业&#xff0c;它在周末进入了私人测试阶段。这家初创公司提供一种个性化的“多视角”新闻阅读体验&#xff0c;不仅利用AI技术来总结新闻&#xff0c;还旨在公平地补偿作者和出版商——至少这是它们的宣称。 尽管…

数据结构(C语言)代码实现(十)——链队列循环队列

目录 参考资料 链队列的实现 LinkQueue.h LinkQueue.cpp 测试函数test.cpp 测试结果 循环队列的实现&#xff08;最小操作子集&#xff09; 完整代码 测试结果 参考资料 数据结构严蔚敏版 链队列的实现 LinkQueue.h #pragma once #include <cstdio> #incl…

到底用不用取地址符,用了有啥区别嘛

一段代码解释&#xff1a; #include <iostream> using namespace std; void swap1(int &a,int &b){int t;ta;ab;bt; } void swap2(int a,int b){int t;ta;ab;bt;cout<<"Im the answer of swap2 : "<<a<<" "<<b<…

【软考-高级软件工程师-信息系统项目管理师】 第三章 信息系统治理知识点 【五分钟看懂】

IT治理用于描述组织在信息化建设和数字化转型过程中是否采用有效的机制使得信息技术开发利用能够完成组织赋予它的使命。IT治理的核心是关注IT定位和信息化建设与数字化转型的责权利划分。 1、IT 治理体系的具体构成包括 IT 定位&#xff1a; IT 应用的期望行为与业务目标一致…

SAP FICO 更改已有业务数据的成本中心公司代码/业务范围

如果对已经发生业务数据的成本中心进行公司代码/业务范围修改&#xff0c;系统会报错&#xff0c;如下图所示 可参考SAP note 62716 - KS020 for change of company code, business area进行解决 解决办法&#xff1a; KS02修改成本中心描述 如下图所示会有一个新的期间&…

【深度学习】SDXL-Lightning 体验,gradio教程,SDXL-Lightning 论文

文章目录 资源SDXL-Lightning 论文 资源 SDXL-Lightning论文&#xff1a;https://arxiv.org/abs/2402.13929 gradio教程&#xff1a;https://blog.csdn.net/qq_21201267/article/details/131989242 SDXL-Lightning &#xff1a;https://huggingface.co/ByteDance/SDXL-Light…

不会这个技巧,你敢说你会经营食堂?

随着科技的不断发展&#xff0c;智能化技术已经深刻改变了各行各业的运作方式&#xff0c;其中餐饮行业也在迎来数字化转型的浪潮。 在这个信息时代&#xff0c;智慧收银系统作为餐饮管理的重要工具&#xff0c;正在逐渐成为提升运营效率、优化用户体验的关键利器。 客户案例 …

基于uniapp电影院购票售票选座系统php/python/nodejs微信小程序_kfsf4

对一些已有的订票系统的设计与实现进行分析研究&#xff0c;寻找规律或产生问题的根源&#xff0c;进而寻求解决问题或改进的方法&#xff0c;形成新的研究课题。 研究步骤 1、图书馆查阅相关资料 2、进行系统功能需求分析 3、根据系统功能需求分析文档绘制系统功能模块图和操作…

Java Web(八)--Servlet(二)

Servlet API Servlet API 包含以下4个Java包&#xff1a; 1. javax.servlet&#xff1a;其中包含定义Servlet和Servlet容器之间契约的类和接口。 2. javax.servlet.http&#xff1a;主要定义了与HTTP协议相关的HttpServlet类&#xff0c;HttpServletRequest接口和HttpServl…

Flask入门一(介绍、Flask安装、Flask运行方式及使用、虚拟环境、调试模式、配置文件、路由系统)

文章目录 一、Flask介绍二、Flask创建和运行1.安装2.快速使用3.Flask小知识4.flask的运行方式 三、Werkzeug介绍四、Jinja2介绍五、Click CLI 介绍六、Flask安装介绍watchdog使用python--dotenv使用&#xff08;操作环境变量&#xff09; 七、虚拟环境介绍Mac/linux创建虚拟环境…

CANoe学习笔记--MeasurementSetup的配置和使用

CANoe提供了一种非常特殊的数据分析模式&#xff0c;即基于数据流方向的测量和分析。MeasurementSetup也是基于图形化的设置模式&#xff0c;能够让工程人员一目了然。 如何理解“基于数据流方向的图形化配置”看下图 数据是像流水一样&#xff0c;定向的向左移动&#xff0c;…

SSP-RCP情景下全球1-km分辨率土地利用预测数据集(2020-2100)【耕地、林地、草地、城乡、工矿、居民用地、未利用地、水体】

作者基于ESA-CCI历史土地利用数据&#xff0c;使用GCAM模型估算了未来土地利用面积需求&#xff1b;然后采用一种改进的元胞自动机模型PLUS对需求进行高空间分辨率降尺度迭代模拟&#xff0c;得到SSP-RCP情景下全球1-km分辨率土地利用预测数据集&#xff08;2020-2100&#xff…

Ubuntu18.04 系统上配置并运行SuperGluePretrainedNetwork(仅使用CPU)

SuperGlue是Magic Leap在CVPR 2020上展示的研究项目&#xff0c;它是一个图神经网络&#xff08;Graph Neural Network&#xff09;和最优匹配层&#xff08;Optimal Matching layer&#xff09;的结合&#xff0c;训练用于对两组稀疏图像特征进行匹配。这个项目提供了PyTorch代…