Spring MVC从入门到精通:HelloKoding-Courses中的XML配置与视图技术实践

Spring MVC从入门到精通:HelloKoding-Courses中的XML配置与视图技术实践

【免费下载链接】hellokoding-courses HelloKoding provides practical coding guides series of Spring Boot, Java, Algorithms, and other topics on software engineering 【免费下载链接】hellokoding-courses 项目地址: https://gitcode.com/gh_mirrors/he/hellokoding-courses

HelloKoding-Courses项目提供了丰富的Spring MVC实践案例,其中基于XML配置的springmvc-xml-jspspringmvc-xml-thymeleaf模块是学习传统Spring MVC开发的绝佳资源。本文将通过这两个模块,详细讲解Spring MVC的XML配置方式以及JSP与Thymeleaf视图技术的应用,帮助新手快速掌握Spring MVC的核心开发技能。

一、环境准备:快速搭建Spring MVC开发环境

要开始Spring MVC的学习,首先需要准备好开发环境。HelloKoding-Courses项目中的Spring MVC示例使用Maven进行项目管理,以下是关键的环境配置步骤:

1.1 Maven依赖配置

spring-mvc-examples/springmvc-xml-jsp/pom.xml文件中,定义了Spring MVC项目的核心依赖:

  • Spring Web和Spring WebMVC:提供Spring MVC核心功能
  • Servlet API:Web应用基础
  • JUnit:单元测试支持
  • Logback:日志管理

核心依赖配置片段如下:

<dependencies>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-web</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>${spring.version}</version>
    </dependency>
</dependencies>

1.2 项目结构

Spring MVC项目通常遵循标准的Maven目录结构,HelloKoding-Courses中的示例也不例外:

springmvc-xml-jsp/
├── src/
│   ├── main/
│   │   ├── java/                # Java源代码
│   │   ├── resources/           # 资源文件
│   │   └── webapp/              # Web应用资源
│   │       └── WEB-INF/
│   │           ├── views/       # 视图文件
│   │           └── *.xml        # Spring配置文件
│   └── test/                    # 测试代码
└── pom.xml                      # Maven配置

二、Spring MVC XML核心配置详解

Spring MVC的XML配置是传统项目中常用的配置方式,HelloKoding-Courses提供了清晰的配置示例,让我们深入了解关键配置文件。

2.1 Spring MVC配置文件(appconfig-mvc.xml)

spring-mvc-examples/springmvc-xml-jsp/src/main/webapp/WEB-INF/appconfig-mvc.xml中,配置了Spring MVC的核心组件:

<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xmlns="http://www.springframework.org/schema/beans"
       xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
    <mvc:annotation-driven/>
    <mvc:resources mapping="/resources/**" location="/resources/"/>

    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/views/"/>
        <property name="suffix" value=".jsp"/>
    </bean>
</beans>

关键配置说明:

  • <mvc:annotation-driven/>:启用Spring MVC注解支持
  • <mvc:resources/>:配置静态资源访问
  • InternalResourceViewResolver:JSP视图解析器,指定视图文件的前缀和后缀

2.2 Web应用配置(web.xml)

web.xml是Web应用的部署描述符,位于src/main/webapp/WEB-INF/目录下,主要配置DispatcherServlet:

<servlet>
    <servlet-name>dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/appconfig-mvc.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>dispatcher</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

DispatcherServlet是Spring MVC的前端控制器,负责接收所有请求并进行分发处理。

三、视图技术实践:JSP与Thymeleaf

HelloKoding-Courses提供了两种视图技术的实现:JSP和Thymeleaf,让我们分别了解它们的配置和使用。

3.1 JSP视图技术

springmvc-xml-jsp模块中,使用JSP作为视图技术。视图解析器配置如下:

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/WEB-INF/views/"/>
    <property name="suffix" value=".jsp"/>
</bean>

对应的JSP视图文件位于src/main/webapp/WEB-INF/views/hello.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Hello Spring MVC</title>
</head>
<body>
    <h1>Hello, ${name}!</h1>
</body>
</html>

3.2 Thymeleaf视图技术

springmvc-xml-thymeleaf模块中,展示了如何使用Thymeleaf作为视图技术。Thymeleaf的配置更为复杂一些,需要配置模板解析器、模板引擎和视图解析器:

<bean id="templateResolver" class="org.thymeleaf.templateresolver.ServletContextTemplateResolver">
    <property name="prefix" value="/WEB-INF/views/"/>
    <property name="suffix" value=".html"/>
    <property name="templateMode" value="HTML5"/>
</bean>

<bean id="templateEngine" class="org.thymeleaf.spring5.SpringTemplateEngine">
    <property name="templateResolver" ref="templateResolver"/>
</bean>

<bean class="org.thymeleaf.spring5.view.ThymeleafViewResolver">
    <property name="templateEngine" ref="templateEngine"/>
</bean>

对应的Thymeleaf视图文件位于src/main/webapp/WEB-INF/views/hello.html

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <title>Hello Spring MVC</title>
</head>
<body>
    <h1 th:text="'Hello, ' + ${name} + '!'"></h1>
</body>
</html>

四、控制器开发:处理用户请求

在Spring MVC中,控制器负责处理用户请求并返回相应的视图。HelloKoding-Courses中的示例控制器位于src/main/java/com/hellokoding/springmvc/HelloController.java

@Controller
public class HelloController {
    @RequestMapping("/hello")
    public String hello(Model model, @RequestParam(value="name", required=false, defaultValue="World") String name) {
        model.addAttribute("name", name);
        return "hello";
    }
}

控制器说明:

  • @Controller:标识该类为Spring MVC控制器
  • @RequestMapping("/hello"):映射URL路径到该方法
  • Model:用于传递数据到视图
  • @RequestParam:获取请求参数
  • 返回值"hello":指定要渲染的视图名称

五、运行与测试:快速启动应用

HelloKoding-Courses中的Spring MVC示例配置了Jetty插件,可以快速启动应用:

<plugin>
    <groupId>org.eclipse.jetty</groupId>
    <artifactId>jetty-maven-plugin</artifactId>
    <version>${jetty-maven-plugin.version}</version>
    <configuration>
        <scanIntervalSeconds>10</scanIntervalSeconds>
        <webApp>
            <contextPath>/</contextPath>
        </webApp>
    </configuration>
</plugin>

启动命令:

mvn jetty:run

应用启动后,访问http://localhost:8080/hello?name=Spring即可看到效果。

六、总结:选择合适的技术栈

通过HelloKoding-Courses中的Spring MVC示例,我们学习了XML配置方式和两种视图技术的应用:

  • JSP:适合简单项目,开发快速,有丰富的标签库支持
  • Thymeleaf:适合需要更好的模板功能和前后端分离的项目,支持HTML5标准

在实际开发中,可以根据项目需求选择合适的视图技术。同时,虽然XML配置是传统方式,但了解它有助于我们更好地理解Spring MVC的工作原理。

HelloKoding-Courses项目中还有更多Spring MVC相关的示例,如registration-login-spring-xml-maven-jsp-mysql模块展示了更复杂的注册登录功能,感兴趣的读者可以进一步学习探索。

【免费下载链接】hellokoding-courses HelloKoding provides practical coding guides series of Spring Boot, Java, Algorithms, and other topics on software engineering 【免费下载链接】hellokoding-courses 项目地址: https://gitcode.com/gh_mirrors/he/hellokoding-courses

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值