zoukankan      html  css  js  c++  java
  • SpringMVC+Maven开发项目源码详细介绍

    代码地址如下:
    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 {
    
        @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
    

    项目运行效果

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


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

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

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

  • 相关阅读:
    VS2010 自动跳过代码现象
    Reverse Linked List II 【纠结逆序!!!】
    Intersection of Two Linked Lists
    Linked List Cycle II
    Remove Nth Node From End of List 【另一个技巧,指针的指针】
    Swap Nodes in Pairs
    Merge Two Sorted Lists
    Remove Duplicates from Sorted List
    Linked List Cycle
    Dungeon Game
  • 原文地址:https://www.cnblogs.com/demodashi/p/8509418.html
Copyright © 2011-2022 走看看