美文网首页
InternalResourceViewResolver 书店

InternalResourceViewResolver 书店

作者: 肖哥弹架构 | 来源:发表于2024-06-27 00:27 被阅读0次

InternalResourceViewResolver用于解析内部资源(如 Servlet 容器中的 JSP 页面)的视图解析器。以下是使用 InternalResourceViewResolver 的一个真实案例,包括业务场景、核心代码讲解以及配置。

类结构设计

image.png

场景案例:

一个在线书店的 Web 应用程序,该应用程序需要展示书籍列表、书籍详情和购物车等功能。你决定使用 JSP 页面作为视图技术来呈现这些信息。

1. 定义 JSP 页面:

创建 JSP 页面来展示书籍列表和详情。

/WEB-INF/views/bookList.jsp:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Book List</title>
</head>
<body>
    <h1>Books</h1>
    <ul>
        <c:forEach var="book" items="${books}">
            <li>${book.title} by ${book.author}</li>
        </c:forEach>
    </ul>
</body>
</html>

/WEB-INF/views/bookDetails.jsp:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Book Details</title>
</head>
<body>
    <h1>${book.title}</h1>
    <p>Author: ${book.author}</p>
    <p>Price: ${book.price}</p>
    <!-- 其他书籍详情 -->
</body>
</html>

2. 配置 InternalResourceViewResolver

在 Spring 配置中设置 InternalResourceViewResolver

Java 配置:

import org.springframework.context.annotation.Bean;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import org.springframework.web.servlet.view.InternalResourceViewResolver;

@Configuration
public class WebConfig implements WebMvcConfigurer {

    @Bean
    public InternalResourceViewResolver viewResolver() {
        InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
        viewResolver.setPrefix("/WEB-INF/views/");
        viewResolver.setSuffix(".jsp");
        return viewResolver;
    }
}

XML 配置:

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

    <mvc:view-resolvers>
        <mvc:internal-resource-view-resolver prefix="/WEB-INF/views/" suffix=".jsp"/>
    </mvc:view-resolvers>

    <!-- 其他Spring MVC配置 -->
</beans>

3. 控制器:

创建控制器来处理书籍列表和详情的请求,并返回相应的视图名称。

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.ui.Model;
import java.util.Arrays;

@Controller
public class BookController {

    @GetMapping("/books")
    public String listBooks(Model model) {
        model.addAttribute("books", Arrays.asList(new Book("Java Basics", "Author A", 29.99),
                                                      new Book("Spring Framework", "Author B", 39.99)));
        return "bookList";
    }

    @GetMapping("/books/{title}")
    public String getBookDetails(@PathVariable String title, Model model) {
        Book book = findBookByTitle(title); // 假设这个方法查找书籍
        model.addAttribute("book", book);
        return "bookDetails";
    }
    
    private Book findBookByTitle(String title) {
        // 实现根据标题查找书籍的逻辑
        return new Book(title, "Author", 12.99);
    }
}

4. 模型对象(Book.java):

public class Book {
    private String title;
    private String author;
    private double price;

    public Book(String title, String author, double price) {
        this.title = title;
        this.author = author;
        this.price = price;
    }

    // 标准的 getter 和 setter
}

总结:

  • InternalResourceViewResolver 允许开发者将控制器的返回值解析为内部资源,如 JSP 页面。
  • 它简化了视图解析过程,使得开发者可以轻松地使用 JSP 页面作为视图。
  • 结合 JSP 页面和模型数据,可以生成动态的 HTML 内容。

相关文章

  • 06|第六课:视图解析器常见功能、处理静态资源、类型

    一、历史回顾 (一)、springMVC处理流程 InternalResourceViewResolver其他功能...

  • springMVC-视图解析器

    内部资源视图解析器 InternalResourceViewResolver用于将提供的URI解析为实际URI,允...

  • 15、渲染Web视图(1)(Spring笔记)

    一、理解视图解析 在之前的讲解中,我们使用名为InternalResourceViewResolver的视图解析器...

  • 书店啊,书店!

    哦,书店,闭上眼睛感受一下 应该是温馨的,安静,整洁,疲惫的心来到这可以舒展,可以找到慰藉的地方。 大陆的新华书店...

  • 不止书店 不在书店

    知识不止 无处不在

  • 书店还是那个书店

    有十年没有进过火车站旁的新华书店了,猛然进去,却再也没了当年的那种雀跃。装修的变化,让我再也找不到一坐一天的小凳...

  • 书店人说书店

    余秋雨先生曾说过:“路,就是书。”在人生这条路上,当下的我选择了与书籍做伴。 首先自我介绍一下,鄙人在书店行业有过...

  • 说说厦门外图书店

    厦门对外图书交流中心,有三个书店:中心书店(即莲坂外图书店),学府路外图书店,台湾书店。我最熟悉的当然就是学府书店...

  • 书店

    书店,刚刚装修过 更明亮的灯光 更洁净的地板 其它的 都没变 一样准确的时钟 一样整齐的书架 多了几本可爱的书 多...

  • 书店

    几乎成了一个习惯,每周日下午秦墨都会去书店看书。 书店离学校不远,虽有些隐蔽,却是极好的去处。秦墨也是在最近才知道...

网友评论

      本文标题:InternalResourceViewResolver 书店

      本文链接:https://www.haomeiwen.com/subject/hcoscjtx.html