代码地址如下:
http://www.demodashi.com/demo/11638.html

Spring MVC概述

Spring MVC框架是一个开源的Java平台,为开发强大的基于Java的Web应用程序提供全面的基础架构支持非常容易和非常快速。

Spring web MVC框架提供了MVC(模型 - 视图 - 控制器)架构和用于开发灵活和松散耦合的Web应用程序的组件。

MVC模式导致应用程序的不同方面(输入逻辑,业务逻辑和UI逻辑)分离,同时提供这些元素之间的松散耦合。

  • 模型(Model)封装了应用程序数据,通常它们将由POJO类组成。

  • 视图(View)负责渲染模型数据,一般来说它生成客户端浏览器可以解释HTML输出。

  • 控制器(Controller)负责处理用户请求并构建适当的模型,并将其传递给视图进行渲染。

项目目录结构

主要代码说明

1、添加控制器

控制器处理GET和POST请求。

@Controller表明这个类是一个控制器在处理具有模式映射的@RequestMapping请求。这里使用 ‘/’, 它被作为默认的控制器。

方法inputCorpus注解为RequestMethod.GET服务默认是GET请求,并呈现包含空白表单的网页。

方法nliProcess注解为RequestMethod.POST服务处理表单提交POST请求。

@Valid要求spring来验证相关的对象(CorpusInfo)。

@Controller
@RequestMapping("/")
public class DemoController {private NLIProcess nli = new NLIProcess();@RequestMapping(method = RequestMethod.GET)public String inputCorpus(ModelMap model) {CorpusInfo cinfo = new CorpusInfo();model.addAttribute("cinfo", cinfo);return "enroll";}@RequestMapping(method=RequestMethod.POST)public String nliProcess(@Valid  @ModelAttribute("cinfo") CorpusInfo cinfo,BindingResult result, ModelMap model) {if (result.hasErrors()) {return "enroll";}model.addAttribute("answer", nli.getAnswer(cinfo.getCorpus()));return "success";}}
2、添加配置类

@Configuration指示该类包含注解为@Bean生产Bean管理是由Spring容器的一个或多个 bean 的方法。

@EnableWebMvc 等效于 mvc:annotation-driven 在XML文件中。

@ComponentScan 等效于 context:component-scan base-package=”…” 提供具有到哪里查找管理Spring beans/类。

方法ViewResolver 配置一个 ViewResolver 用来找出真正的视图。

方法 addResourceHandlers 配置 ResourceHandler 静态资源。例子中,将css文件放在 Web应用程序的 /static/css 目录中。

@Configuration
@EnableWebMvc
@ComponentScan(basePackages = "com.demo")
public class DemoConfiguration extends WebMvcConfigurerAdapter {@Beanpublic ViewResolver viewResolver() {InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();viewResolver.setViewClass(JstlView.class);viewResolver.setPrefix("/WEB-INF/views/");viewResolver.setSuffix(".jsp");return viewResolver;}@Beanpublic MessageSource messageSource() {ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource();messageSource.setBasename("messages");return messageSource;}@Overridepublic void addResourceHandlers(ResourceHandlerRegistry registry) {registry.addResourceHandler("/static/**").addResourceLocations("/static/");}
}

方法messageSource 配置消息包,以支持[国际化]消息属性文件。Spring 将搜索应用程序类路径中一个名为messages.properties文件:

Size.cinfo.corpus=corpus must be between {2} and {1} characters long

项目运行效果

运行应用程序,访问URL:http://localhost:8080/SpringMVCDemoNLI


SpringMVC+Maven开发项目源码详细介绍

代码地址如下:
http://www.demodashi.com/demo/11638.html

注:本文著作权归作者,由demo大师发表,拒绝转载,转载需要作者授权

SpringMVC+Maven开发项目源码详细介绍相关推荐

  1. Struts2增删改查 myeclipse开发文档加项目源码及eclipse开发项目源码

    Struts2增删改查 myeclipse开发文档加项目源码及eclipse开发项目源码 git里只有myeclipse开发的项目 文档及项目github下载地址:https://github.com ...

  2. ExcelToHtmlTable转换算法:将Excel转换成Html表格并展示(项目源码+详细注释+项目截图)...

    功能概述 Excel2HtmlTable的主要功能就是把Excel的内容以表格的方式,展现在页面中. Excel的多个Sheet对应页面的多个Tab选项卡. 转换算法的难点在于,如何处理行列合并,将E ...

  3. H5农场牧场养殖鸡蛋理财鸡游戏运营网站搭建开发项目源码

    2022全新H5农场牧场养殖鸡蛋理财鸡游戏运营源码/对接免签约支付接口/带视频架设学习教程 牧场养殖养鸡游戏,母鸡能够下蛋,鸡蛋能够买卖,游戏里自带交易商城,具体的玩法和规则游戏里面有详情. 和那些区 ...

  4. python web开发项目 源码_Python + Flask 项目开发实践系列七

    对于 Python + Flask 这种灵活的web开发框架,在前面的六个系列文章中详细的进行了说明,主要讲到了页面的首页加载时的页面渲染,增加功能,删除功能,修改功能,查询功能,查询详情功能等一些页 ...

  5. python web开发项目 源码_真零基础Python开发web

    Python开发web服务的优势是开发效率高,可能只需要java五分之一的代码量. Python搭建web服务有许多框架,本文介绍Django和bottle两个框架. Django 安装 首先,安装该 ...

  6. swap去中心化交易平台系统开发技术案例/开发项目/源码部署

    百度提前批 一面:问的比较多 很多记不清了 没问项目 实习大致问了问 1. go常用包及功能特性 2. GMP模型 3. 知不知道并发 并行 异步区别? 题解 | #顾客登录名# select cus ...

  7. SpringMVC+Spring4+Mybatis3集成,开发简单Web项目+源码下载

    转载自   SpringMVC+Spring4+Mybatis3集成,开发简单Web项目+源码下载 基本准备工作 1.安装JDK1.6以上版本,安装与配置 2.下载mybatis-3.2.0版:htt ...

  8. java 库存 进销存 商户 多用户管理系统 SSM springmvc 项目源码

    统介绍: 1.系统采用主流的 SSM 框架 jsp JSTL bootstrap html5 (PC浏览器使用) 2.springmvc +spring4.3.7+ mybaits3.3 SSM 普通 ...

  9. 基于ssm Vue+elementui农家乐管理系统java 项目源码介绍

    一.源码描述   这是一款基于web的前后端分离JAVA+SSM和vue.js源码 基于B/S开发,包含毕业论文和答辩ppt,开发工具idea支持eclipse,MySQL,适合作为毕业设计使用,感兴 ...

最新文章

  1. python编程if语法-讲解Python中if语句的嵌套用法
  2. Notepad++插件总结
  3. springboot 2.3_Spring Boot 2.X系列教程:七天从无到有掌握Spring Boot-持续更新
  4. eof怎么结束输入_西门子S71500数字量输入模块如何编址?
  5. VS2017社区版30天到期无法使用的激活方法
  6. Visual C++中的ODBC编程实例
  7. 微型计算机的硬件系统普遍采用,2016年9月计算机一级《MS Office》考题与答案
  8. 2017年5月24日 HTML 基础知识(二)
  9. 366万常用的中 txt 网盘_人间值得 – 中村恒子 pdf+azw3+epub+mobi+txt+docx|百度网盘资源分享...
  10. 数字后端设计实现之时钟树综合实践篇
  11. 初识马尔科夫链,原来是这样的
  12. linux aufs,UnionFS有什么用?AUFS的一些特性
  13. TFS2012 权限设置
  14. 生成树协议 STP(Spanning Tree Protocol)
  15. 麦肯锡全球研究院 人机共存的新纪元: 自动化、就业和生产力
  16. CAD编辑指南4:新建空白图纸以及添加文字标注
  17. unity 鼠标拖动UI 滚轮缩放大小
  18. 腾讯云配置jupyter notebook远程登录
  19. 百度推广创意怎么写?百度推广创意十大秘籍
  20. scratch接球游戏 电子学会图形化编程scratch等级考试三级真题和答案解析2022年3月

热门文章

  1. linux5怎么删除目录,Linux中目录的创建与删除命令使用说明
  2. java python c++比喻图_Java/Python/PHP/C++图文详解它们之间的尿性
  3. typename的双重语义
  4. 公务员计算机软件及相关专业,公务员计算机专业考试大纲和真题3
  5. C语言 JSON 解析库 - MJSON使用介绍
  6. struct sk_buff与struct socket及struct sock 结构体分析
  7. Spring之AOP详解
  8. 大数据平台网站日志分析系统
  9. 【Codeforces Round #438 C】 Qualification Rounds
  10. NOIP之旅:NOIP2014篇