Skip to content

脚本视图 (Script Views) ​

Spring MVC 内置了对 JSR-223 Java 脚本引擎支持的任何模板库的集成。这意味着你可以使用 Ruby、Python 甚至 JavaScript 编写视图模板。

支持的语言示例 ​

  • ERB (Ruby):通过 JRuby 运行。
  • String Templates (Python):通过 Jython 运行。

配置示例 (以 Jython 为例) ​

  1. 添加依赖:确保 Jython 在 Classpath 中。
  2. 配置 Configurer:
java
@Configuration
public class WebConfig implements WebMvcConfigurer {

    @Override
    public void configureViewResolvers(ViewResolverRegistry registry) {
        registry.scriptTemplate();
    }

    @Bean
    public ScriptTemplateConfigurer scriptTemplateConfigurer() {
        ScriptTemplateConfigurer configurer = new ScriptTemplateConfigurer();
        configurer.setEngineName("jython");
        configurer.setScripts("render.py"); // 用于渲染的脚本
        configurer.setRenderFunction("render"); // 脚本中定义的渲染函数
        return configurer;
    }
}

渲染函数 ​

脚本中定义的渲染函数通常接收模板内容、模型数据和渲染上下文作为参数。


补充教学 ​

1. 为什么使用脚本视图? ​

这种技术最大的优势是跨语言生态复用。如果你的团队已经有一套成熟的 Python (ERB) 或其他语言的 UI 组件库,你不必为了 Spring MVC 重写它们。

2. 性能考虑 ​

由于涉及跨引擎调用,如果不进行精细的缓存和预编译处理,脚本视图的性能通常低于原生的 Java 模板引擎。

3. 多模态 Web 开发 ​

这体现了 Spring 的包容性。你可以让 Python 开发者负责 UI 层,而 Java 开发者负责核心业务骨干,两者通过一个简单的脚本函数进行对接。

Based on Spring Framework.