java mvc框架 源代码_SpringMVC+Maven开发项目源码详细介绍

本文详细介绍了Spring MVC框架,包括其在Java Web应用中的作用,MVC架构的组成部分,以及如何创建控制器和配置类。通过一个示例展示了如何添加控制器处理GET和POST请求,以及配置静态资源和视图解析器。最后,文章提到了项目的运行效果和源码详细解读。
摘要由CSDN通过智能技术生成

Spring MVC概述

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

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

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

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

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

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

项目目录结构

8b68410890cffed510e4cf375e66fe46.png

主要代码说明

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 {

@Bean

public ViewResolver viewResolver() {

InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();

viewResolver.setViewClass(JstlView.class);

viewResolver.setPrefix("/WEB-INF/views/");

viewResolver.setSuffix(".jsp");

return viewResolver;

}

@Bean

public MessageSource messageSource() {

ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource();

messageSource.setBasename("messages");

return messageSource;

}

@Override

public 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

项目运行效果

63056c0fafc1f4e226f76d0c40583cc7.png

50446f683e5288f99c8325e8e4f63626.png

f6423a276ea012abdffd17af9aefcc36.png

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值