無xml文件的springMVC


使用springMVC我們一般都會在web.xml中配置一個dispatcher,現在我們基於用java代碼的方式來使用springMVC

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.EnableWebMvc;
import org.springframework.web.servlet.view.InternalResourceViewResolver;
import org.springframework.web.servlet.view.JstlView;

@Configuration
@EnableWebMvc
@ComponentScan
public class MVCConfig {
    @Bean
    public InternalResourceViewResolver viewResolver(){
        InternalResourceViewResolver viewResolver=new InternalResourceViewResolver();
        viewResolver.setPrefix("/WEB-INF/");
        viewResolver.setSuffix(".jsp");
        viewResolver.setViewClass(JstlView.class);
        return viewResolver;
    }
    
}

以上是一個普通的spring配置類,在其中是配置了一個jsp的ViewResolver,相信熟悉springMVC的知道這個ViewResolver。

@Configuration聲明當前類為配置類,
@EnableWebMvc注解會開啟一些默認配置,如ViewResolver
 

 

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRegistration.Dynamic;

import org.springframework.web.WebApplicationInitializer;
import org.springframework.web.context.support.AnnotationConfigWebApplicationContext;
import org.springframework.web.servlet.DispatcherServlet;

public class WebConfig implements WebApplicationInitializer{

    @Override
    public void onStartup(ServletContext servletContext) throws ServletException {
        AnnotationConfigWebApplicationContext context=new AnnotationConfigWebApplicationContext();
        context.register(MVCConfig.class);
        context.setServletContext(servletContext);    
        Dynamic servlet=servletContext.addServlet("dispatcher", new DispatcherServlet(context));
        servlet.addMapping("/");
        servlet.setLoadOnStartup(1);
    }
           
}

以上代碼其實就相當於我們在web.xml中配置的dispatcher,webApplicationInitializer是spring提供用來配置Servlet3.0+配置的接口,從而實現了替代web.xml的位置,實現此接口將會自動被SpringServletContainerInitialzer(用來啟動Servlet3.0容器)獲取到,然后我們需要注冊我們前面寫的MVCConfig配置類,並將其和當前servletContext關聯。

 

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class HelloController {
    @RequestMapping("index")
       public String hello(){
           return "index";
       }
}

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
       Hello World
</body>
</html>

 

 

上面就是一個控制器和相應的index.jsp代碼,將項目部署到tomcat中,啟動,訪問相應的URL。

注:以上分享來自 JavaEE開發的顛覆者: Spring Boot實戰書籍

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM