SpringMVC02——第一个MVC程序-注解版(high版!!!!)
注解版
- 新建一个子项目,添加Web支持
- 在pom.xml文件中引入相关的依赖:主要引入Spring框架核心库、SpringMVC、servlet,JSTL等。
- 创建实体类Fruit
package com.pp.pojo;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class Fruit {
private String name; //水果名
private double price; //价格
private String producing_area;//产地
}
- 编写实体类对应的Controller
package com.pp.controller;
import com.pp.pojo.Fruit;
import com.pp.service.FruitService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import java.util.List;
@Controller
public class FruitController {
@Autowired
FruitService fruitService;
@RequestMapping("/fc")
public String getFruit(Model model){
//模拟Service获取水果商品列表
List<Fruit> fruitLists=fruitService.queryFruitList();
model.addAttribute("fruitList",fruitLists);
return "fruitList";
}
}
- 配置SpringMVC,类似于Springmvc.xml
package com.pp.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.DefaultServletHandlerConfigurer;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import org.springframework.web.servlet.view.InternalResourceViewResolver;
@Configuration
@EnableWebMvc
@ComponentScan("com.pp")//扫描包
public class SpringMVCConfig implements WebMvcConfigurer {
//配置jsp视图解析器
@Bean
public InternalResourceViewResolver getViewResolver(){
InternalResourceViewResolver viewResolver = new
InternalResourceViewResolver();
viewResolver.setPrefix("/WEB-INF/jsp/");
viewResolver.setSuffix(".jsp");
return viewResolver;
}
//配置静态资源的处理
@Override
public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
configurer.enable();
}
}
- 配置WebConfig,原来的web.xml
这里注意别导错包
import javax.servlet.ServletRegistration.Dynamic;
一定是这两个!不然会报错
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
package com.pp.config;
import org.springframework.web.WebApplicationInitializer;
import org.springframework.web.context.support.AnnotationConfigWebApplicationContext;
import org.springframework.web.servlet.DispatcherServlet;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRegistration.Dynamic;
public class WebConfig implements WebApplicationInitializer {
@Override
public void onStartup(ServletContext servletContext) throws ServletException {
// 加载Spring web用于配置
AnnotationConfigWebApplicationContext ctx = new
AnnotationConfigWebApplicationContext();
ctx.register(SpringMVCConfig.class);
ctx.setServletContext(servletContext);
ctx.refresh();
// 创建dispatcherServlet
Dynamic servlet = servletContext.addServlet("dispatcher", new
DispatcherServlet(ctx));
servlet.addMapping("/");
servlet.setLoadOnStartup(1);
}
}
到这里,以前的xml文件就完全被我们的Config给取代了!!!有没有很爽!!
接下来编写Service
- FruitService类
package com.pp.service;
import com.pp.pojo.Fruit;
import java.util.List;
public interface FruitService {
List<Fruit> queryFruitList();
}
对应的实现类
package com.pp.service;
import com.pp.pojo.Fruit;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
@Service
public class FruitServiceImpl implements FruitService{
@Override
public List<Fruit> queryFruitList() {
List<Fruit> fruitsList = new ArrayList<>();
Fruit apple =Fruit.builder()
.name("苹果")
.price(19)
.producing_area("山东烟台")
.build();
Fruit banana =Fruit.builder()
.name("香蕉")
.price(5)
.producing_area("海南")
.build();
Fruit pear =Fruit.builder()
.name("梨子")
.price(8.5)
.producing_area("汤山")
.build();
fruitsList.add(apple);
fruitsList.add(pear);
fruitsList.add(banana);
return fruitsList;
}
}
- 编写jsp视图层!在WEB-INF/jsp下创建fruitList.jsp
<%--
Created by IntelliJ IDEA.
User: supanpan199919
Date: 2021-05-08
Time: 19:55
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<html>
<head>
<title>Title</title>
</head>
<body>
<h2>水果信息情况</h2>
<table border="1px" width="400px">
<thead>
<th>名称</th>
<th>价格</th>
<th>产地</th>
</thead>
<tbody>
<c:forEach items="${fruitList}" var="fruit">
<tr>
<td>${fruit.name}</td>
<td>${fruit.price}</td>
<td>${fruit.producing_area}</td>
</tr>
</c:forEach>
</tbody>
<tfoot>
<tr>
<td colspan="3" align="center">@copy软件班</td>
</tr>
</tfoot>
</table>
</body>
</html>
最后!!!配置tom,启动测试
SpringMVC02——第一个MVC程序-注解版(high版!!!!)的更多相关文章
- SpringMVC-02 第一个SpringMVC程序
SpringMVC-02 第一个SpringMVC程序 第一个SpringMVC程序 配置版 新建一个Moudle , springmvc-02-hello,确定依赖导入进去了 1.配置web.xml ...
- ASP.NET MVC 小牛之旅2:体验第一个MVC程序
了解了什么是MVC之后,接下来用一个非常简单的留言板程序概要的了解MVC网站开发的过程,对MVC开发有个大致的轮廓.第一个项目将不会提到过多与数据库相关的技术,因此将以Framework Code F ...
- ASP.NET MVC概述及第一个MVC程序
一.ASP.NET 概述 1. .NET Framework 与 ASP.NET .NET Framework包含两个重要组件:.NET Framework ...
- Pro ASP.NET MVC –第二章 第一个MVC程序
学习一个软件开发框架的最有效的方式就是了解并使用它.在本章,你将会创建一个简单基于ASP.NET MVC Framework的数据-实体应用程序.我们会该程序划分成若干小块,每次介绍一个部分,以便你能 ...
- 我的第一个MVC程序(SpringMVC的环境搭建与实例运用)
做一个完整点的mvc框架的搭建流程吧 Spring包含jar包下载 SpingMVC是基于Spring的一种关于web的解决方案,所以,使用springMVC,首先要准备有关Spring的一些jar包 ...
- 第一个SpringMVC程序 (注解版)
1.新建一个web项目 2.导入相关jar包 3.编写web.xml , 注册DispatcherServlet <?xml version="1.0" encoding=& ...
- 第一个MVC程序
配置版 添加web的支持! 确定导入了SpringMVC 的依赖! 配置web.xml , 注册DispatcherServlet <?xml version="1.0" e ...
- Centos7安装.Net Core 2.2环境以及部署.Net Core MVC程序(Apache+Jexus环境)
原文:Centos7安装.Net Core 2.2环境以及部署.Net Core MVC程序(Apache+Jexus环境) 1.双11抢购***VPS.配置如下: CPU:2 核 内存:2048 M ...
- 第一个SpringMVC程序 (配置版)
通过配置版本的MVC程序,可以了解到MVC的底层原理,实际开发我们用的是注解版的! 1.新建一个普通Maven的项目,然后添加web的支持 2.导入相关的SpringMVC的依赖 3.配置web.xm ...
- 【MVC 4】1.第一个 MVC 应用程序
作者:[美]Adam Freeman 来源:<精通ASP.NET MVC 4> ASP.NET MVC 是微软的一个 Web开发框架,它整合了“模型—视图—控制器(MVC)”架构 ...
随机推荐
- 秒懂ajax轮询、long poll 、websocket
ajax轮询 场景再现: 客户端:啦啦啦,有没有新信息(Request) 服务端:没有(Response) 客户端:啦啦啦,有没有新信息(Request) 服务端:没有..(Response) 客户端 ...
- 在ubuntu下将virtualbox虚拟机的磁盘重设大小的方法
1.VBoxManage modifyhd /home/beyond/xxx.vdi --resize 20480 {20480(单位:M)是你要扩容之后的总大小,/home/beyond 是你存放 ...
- Spring源码学习笔记7——Spring bean的初始化
一丶前言 上篇中我们了解了Spring bean的实例化--存在方法覆盖的使用CGLIB动态代理生成子类,反之反射调用构造函数.实例化后bean中的字段都是默认值,接下来就是对bean的属性进行填充, ...
- 如何利用动态配置中心在JavaAgent中实现微服务的多样化治理
本文分享自华为云社区<如何利用动态配置中心在JavaAgent中实现微服务的多样化治理>,作者:华为云开源 . 一.前言 随着JavaAgent在微服务治理方面的广泛应用和发展,我们可以在 ...
- 【玩转鲲鹏DevKit系列】如何快速迁移软件包?
本文分享自华为云社区<[玩转鲲鹏DevKit系列]如何快速迁移软件包?>,作者: 华为云社区精选 . 软件包含各种不同格式的文件,如RPM包通常包含二进制文件.SO 库文件.JAR包.配置 ...
- 自动调优工具AOE,让你的模型在昇腾平台上高效运行
摘要:当算子性能或者网络性能不佳时,可以使用AOE进行调优.本文就带大家了解自动调优工具AOE,让你的模型在昇腾平台上高效运行. 本文分享自华为云社区<自动调优工具AOE,让你的模型在昇腾平台上 ...
- 如何注册appuploader账号
如何注册appuploader账号 我们上一篇讲到appuploader的下载安装,要想使用此软件呢,需要注册账号才能使用,今 天我们来讲下如何注册appuploader账号来使用软件. 1.A ...
- 火山引擎智能外呼联合火山引擎VeDI升级服务,让企业精准营销不再难
企业营销模式正在经历一场巨变.数字化营销早已替代传统的营销方式,成为企业营销的主流方式和发展战略中不可或缺的部分.然而随着数字化营销的普及,市场迈入存量竞争时代,获客成本也逐年攀升.面对营销过程中不断 ...
- 一文快速了解火山引擎 A/B 测试平台
更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 一. 概述 A/B Testing 作为因果推断的「黄金标准」,是效果评估的利器. 火山引擎 A/B 测试(Dat ...
- AI 0基础学习,数学名词解析
AI学习过程中,常见的名词解析 中位数 将数据从小到大排序,奇数列,取中间值,偶数列,中间两个值的平均,可做为销售指标 众数 一组数据中,数值出现最多的那个.反映哪款产品,销量最好 平均数 比赛中,去 ...