注解版

  1. 新建一个子项目,添加Web支持
  2. 在pom.xml文件中引入相关的依赖:主要引入Spring框架核心库、SpringMVC、servlet,JSTL等。
  3. 创建实体类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;//产地 }
  1. 编写实体类对应的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";
} }
  1. 配置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();
} }
  1. 配置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

  1. 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;
}
}
  1. 编写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版!!!!)的更多相关文章

  1. SpringMVC-02 第一个SpringMVC程序

    SpringMVC-02 第一个SpringMVC程序 第一个SpringMVC程序 配置版 新建一个Moudle , springmvc-02-hello,确定依赖导入进去了 1.配置web.xml ...

  2. ASP.NET MVC 小牛之旅2:体验第一个MVC程序

    了解了什么是MVC之后,接下来用一个非常简单的留言板程序概要的了解MVC网站开发的过程,对MVC开发有个大致的轮廓.第一个项目将不会提到过多与数据库相关的技术,因此将以Framework Code F ...

  3. ASP.NET MVC概述及第一个MVC程序

    一.ASP.NET 概述        1. .NET Framework 与 ASP.NET                .NET Framework包含两个重要组件:.NET Framework ...

  4. Pro ASP.NET MVC –第二章 第一个MVC程序

    学习一个软件开发框架的最有效的方式就是了解并使用它.在本章,你将会创建一个简单基于ASP.NET MVC Framework的数据-实体应用程序.我们会该程序划分成若干小块,每次介绍一个部分,以便你能 ...

  5. 我的第一个MVC程序(SpringMVC的环境搭建与实例运用)

    做一个完整点的mvc框架的搭建流程吧 Spring包含jar包下载 SpingMVC是基于Spring的一种关于web的解决方案,所以,使用springMVC,首先要准备有关Spring的一些jar包 ...

  6. 第一个SpringMVC程序 (注解版)

    1.新建一个web项目 2.导入相关jar包 3.编写web.xml , 注册DispatcherServlet <?xml version="1.0" encoding=& ...

  7. 第一个MVC程序

    配置版 添加web的支持! 确定导入了SpringMVC 的依赖! 配置web.xml , 注册DispatcherServlet <?xml version="1.0" e ...

  8. 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 ...

  9. 第一个SpringMVC程序 (配置版)

    通过配置版本的MVC程序,可以了解到MVC的底层原理,实际开发我们用的是注解版的! 1.新建一个普通Maven的项目,然后添加web的支持 2.导入相关的SpringMVC的依赖 3.配置web.xm ...

  10. 【MVC 4】1.第一个 MVC 应用程序

    作者:[美]Adam Freeman      来源:<精通ASP.NET MVC 4> ASP.NET MVC 是微软的一个 Web开发框架,它整合了“模型—视图—控制器(MVC)”架构 ...

随机推荐

  1. MySQL|MySQL事物以及隔离级别

    MySQL 事务主要用于处理操作量大,复杂度高的数据.比如开单,需要添加给订单表增加记录,还需要增加订单的各种相关明细,操作复杂度高,这些操作语句需要构成一个事务.在 MySQL 命令行的默认设置下, ...

  2. 2023-05-31:给定一个整数数组 A,你可以从某一起始索引出发,跳跃一定次数 在你跳跃的过程中,第 1、3、5... 次跳跃称为奇数跳跃 而第 2、4、6... 次跳跃称为偶数跳跃 你可以按以下

    2023-05-31:给定一个整数数组 A,你可以从某一起始索引出发,跳跃一定次数 在你跳跃的过程中,第 1.3.5... 次跳跃称为奇数跳跃 而第 2.4.6... 次跳跃称为偶数跳跃 你可以按以下 ...

  3. LeetCode刷题(不断更新)

    冲冲冲 125. 验证回文串 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写. 说明:本题中,我们将空字符串定义为有效的回文串. 示例 1: 输入: "A m ...

  4. 如何去学好JS的8条小建议

    摘要:如何才能学好JS?在这里给大家总结一些学习Js的经验,希望能对你们有所帮助. 在我们第一阶段完成HTML+CSS的学习之后,很多同学都会被第二阶段JS难倒--JS语法.JS数据类型.JS对象,J ...

  5. 云小课|使用SpringBoot快速构建FunctionGraph HTTP函数

    阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说).深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云.更多精彩内容请单击此处. 摘要:本篇云小课主要指导 ...

  6. 带你认识大模型训练关键算法:分布式训练Allreduce算法

    摘要:现在的模型以及其参数愈加复杂,仅仅一两张的卡已经无法满足现如今训练规模的要求,分布式训练应运而生. 本文分享自华为云社区<分布式训练Allreduce算法>,原文作者:我抽签必中. ...

  7. 4种Springboot RestTemplate 服务里发送HTTP请求用法

    摘要: RestTemplate与REST资源交互的方法涵盖了HTTP请求方法,包括get, post, put, delete. 本文分享自华为云社区<Springboot RestTempl ...

  8. 一个Camel Multicast组件聚合策略问题的解决过程

    摘要:本文通过案例,发现了一个Camel Multicast组件聚合策略相关的问题.通过查看Camel源代码,找到了问题原因并给出了解决方案.希望本文可以帮助到遇到同样问题的Camel用户. 本文分享 ...

  9. Jenkins + SVN

    安装插件 Localization: Chinese (Simplified) Subversion 配置国内源 http://mirror.tuna.tsinghua.edu.cn/jenkins/ ...

  10. Mac 播放 swf Flash文件

    Flash已不再支持,swf 文件彻底打不开了(一些教程),通过PD虚拟,安装 windows 操作系统在里在装了 flash 播放器使用了一段时间,始终不方便.于是找到了如下方法 首先安装:Adob ...