Spring MVC:使用基于Java的配置创建一个简单的Controller

这是我博客上与Spring MVC相关的第一篇文章。 开端总是令人兴奋的,因此我将尽量简洁明了。 Spring MVC允许以最方便,直接和快速的方式创建Web应用程序。 开始使用这项技术意味着需要Spring CORE的知识。 在文章中,您将了解有关创建简单的Spring MVC Controller的信息。 我更喜欢基于Java的应用程序配置,因此示例将包含此方法。

主要目的是创建将处理请求的控制器。 因此,单击链接后,您将在Spring控制器的帮助下重定向到具体页面。

制备

在Eclipse中创建一个新的Dynamic Web Project,然后将其转换为Maven项目 。 验证您的web.xml文件如下所示:

<!--?xml version="1.0" encoding="UTF-8"?-->
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemalocation="http://java.sun.com/xml/ns/javaee 
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>SimpleController</display-name>
  
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  
</web-app>

index.jsp将在应用程序中充当主页的角色,将其放置在src / main / webapp / index.jsp中 ; 这是index.jsp的代码:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
...
<h1>Home page</h1>
<p>This is a Home Page.</p>
...

结果,项目的结构将如下所示:

项目结构弹簧mvc开头

设置依赖

接下来,我需要将一些依赖项添加到pom.xml文件中。 我不再谈论依赖关系,下面将对代码进行注释:

<properties>
		<spring.version>3.1.1.RELEASE</spring.version>
	</properties>

	<dependencies>
		<!-- Spring -->
		<dependency>
			<groupid>org.springframework</groupid>
			<artifactid>spring-context</artifactid>
			<version>${spring.version}</version>
		</dependency>
		<dependency>
			<groupid>org.springframework</groupid>
			<artifactid>spring-webmvc</artifactid>
			<version>${spring.version}</version>
		</dependency>
		<dependency>
			<groupid>org.springframework</groupid>
			<artifactid>spring-beans</artifactid>
			<version>${spring.version}</version>
		</dependency>
		<dependency>
			<groupid>org.springframework</groupid>
			<artifactid>spring-web</artifactid>
			<version>${spring.version}</version>
		</dependency>
		<!-- CGLIB is required to process @Configuration classes -->
		<dependency>
			<groupid>cglib</groupid>
			<artifactid>cglib</artifactid>
			<version>2.2.2</version>
		</dependency>
		<!-- Servlet API, JSTL -->
		<dependency>
			<groupid>javax.servlet</groupid>
			<artifactid>javax.servlet-api</artifactid>
			<version>3.0.1</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupid>jstl</groupid>
			<artifactid>jstl</artifactid>
			<version>1.2</version>
		</dependency>
	</dependencies>

您可以在官方博客上找到有关Spring依赖项的更多信息。

基于Java的配置

现在该为应用程序创建配置了。 正如我上面提到的,这种方法很方便,原因之一就是注释的使用。 首先,我将创建WebAppConfig类

package com.sprmvc.init;

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

@Configuration //Specifies the class as configuration
@ComponentScan('com.sprmvc') //Specifies which package to scan
@EnableWebMvc //Enables to use Spring's annotations in the code
public class WebAppConfig {

	@Bean
	public UrlBasedViewResolver setupViewResolver() {
		UrlBasedViewResolver resolver = new UrlBasedViewResolver();
		resolver.setPrefix('/WEB-INF/pages/');
		resolver.setSuffix('.jsp');
		resolver.setViewClass(JstlView.class);
		return resolver;
	}

}

指出所有JSP的存储路径已完成。 为了使用其他可读的URL,这是必需的。

现在轮到初始化程序类了。

package com.sprmvc.init;

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 Initializer implements WebApplicationInitializer {

	@Override
	public void onStartup(ServletContext servletContext) throws ServletException {

		AnnotationConfigWebApplicationContext ctx = new AnnotationConfigWebApplicationContext();
		ctx.register(WebAppConfig.class);

		ctx.setServletContext(servletContext);	

		Dynamic servlet = servletContext.addServlet('dispatcher', new DispatcherServlet(ctx));
		servlet.addMapping('/');
		servlet.setLoadOnStartup(1);

	}

}

注意,Initializer类实现了WebApplicationInitializer接口。 这是避免Web应用程序的XML配置所必需的。

控制器的JSP

在向您展示如何创建一个简单的控制器之前,我需要创建一个JSP文件,控制器将引导我们进入该文件。

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>

...
    <p>Hello world: ${message}</p>
    <p>Well done!</p>
...

这是JSP文件的路径: src / main / webapp / WEB-INF / pages / hello.jsp
请注意,在WebAppConfig类中,我指定了诸如sufix和prefix之类的路径部分。

控制者

最后是LinkController类的代码

package com.sprmvc.controller;

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

@Controller
public class LinkController {

	@RequestMapping(value='/hello-page')
	public ModelAndView goToHelloPage() {
		ModelAndView view = new ModelAndView();
		view.setViewName('hello'); //name of the jsp-file in the 'page' folder

		String str = 'MVC Spring is here!';
		view.addObject('message', str); //adding of str object as 'message' parameter

		return view;
	}

}

现在,您需要通过在其中添加指向Hello页面的链接来更新index.jsp文件:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
...
<h1>Home page</h1>
<p>This is a Home Page.</p>
<p><a href="hello-page.html">Hello world link</a></p>
...

最终的项目结构为:

最终项目结构弹簧mvc开头

启动项目,打开index.jsp并单击链接,您将获得:

Spring MVC开始的结果

摘要

有时教程确实很有帮助,但是学习如何使用Spring的最好方法是阅读官方文档,因此我建议您在Spring博客上进行更深入的研究。

参考: Spring MVC:Fruzenshtein的注释博客中,由我们的JCG合作伙伴 Alex Fruzenshtein 使用基于Java的配置创建了一个简单的Controller

翻译自: https://www.javacodegeeks.com/2013/03/spring-mvc-creation-of-a-simple-controller-with-java-based-config.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值