Spring MVC多视图配置(jsp, freemarker, Velocity)

MacOS上VScode配置PlatformIO Core的疑难杂症与提速实战 本文详细解析了在MacOS上使用VScode配置PlatformIO Core时遇到的安装卡死、新建项目缓慢等常见问题,并提供了官方脚本安装、网络优化、命令行预下载等实用解决方案。通过环境变量配置和镜像源加速,大幅提升开发效率,特别适合ESP32等嵌入式开发场景。 阅读详情
  1. 1.Spring配置的XML  
[html]  view plain copy
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2.   
  3. <beans xmlns="http://www.springframework.org/schema/beans"  
  4.  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  5.  xmlns:p="http://www.springframework.org/schema/p"  
  6.  xmlns:context="http://www.springframework.org/schema/context"  
  7.  xsi:schemaLocation="  
  8.  http://www.springframework.org/schema/beans  
  9.  http://www.springframework.org/schema/beans/spring-beans-3.0.xsd  
  10.  http://www.springframework.org/schema/context  
  11.  http://www.springframework.org/schema/context/spring-context-3.0.xsd ">  
  12.     <context:component-scan  
  13.      base-package="com.spring.action"/>  
  14.     <!--  
  15.     org.springframework.web.servlet.view.ResourceBundleViewResolver  
  16.     用于多个视图集成时,ResourceBundleViewResolver是通过解析资源文件来解析请求输出文件的。  
  17.     <property name="basename" value="views"></property>,即表示在/WEB-INF/classes路径下有一个  
  18.     views.properties文件,本例中views.properties的内容为  
  19.     welcome.(class)=org.springframework.web.servlet.view.velocity.VelocityView  
  20.     welcome.url=welcome.vm  
  21.     freemarker.(class)=org.springframework.web.servlet.view.freemarker.FreeMarkerView  
  22.     freemarker.url=freemarker.ftl  
  23.     -->  
  24.     <bean class="org.springframework.web.servlet.view.ResourceBundleViewResolver">  
  25.         <property name="basename" value="views">  
  26.         </property>  
  27.         <!-- 
  28.         <property name="order" value="0"></property> 
  29.         -->  
  30.     </bean>  
  31.     <!-- FreeMarker环境配置 -->  
  32.     <bean id="freemarkerConfig"  
  33.       
  34.      class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">  
  35.         <!-- freemarker模板位置 -->  
  36.         <property name="templateLoaderPath" value="/WEB-INF/freemarker/"/>  
  37.     </bean>  
  38.     <!-- velocity环境配置 -->  
  39.     <bean id="velocityConfig"   
  40.   
  41.      class="org.springframework.web.servlet.view.velocity.VelocityConfigurer">  
  42.         <!-- velocity配置文件路径 -->  
  43.         <property name="configLocation" value="/WEB-INF/velocity.properties"/>  
  44.         <!-- velocity模板路径 -->  
  45.         <property name="resourceLoaderPath" value="/WEB-INF/velocity/"/>  
  46.     </bean>  
  47.     <bean id="viewResolver"  
  48.      class="com.spring.action.MultiViewResover">  
  49.         <property name="resolvers">  
  50.             <map>  
  51.                 <entry key="jsp">  
  52.                     <bean  
  53.                      class="org.springframework.web.servlet.view.InternalResourceViewResolver">  
  54.                         <property name="viewClass"  
  55.                          value="org.springframework.web.servlet.view.JstlView"/>  
  56.                         <property name="prefix" value="/WEB-INF/jsp/"/>  
  57.                         <property name="suffix" value=".jsp"/>  
  58.                     </bean>  
  59.                 </entry>  
  60.                 <entry key="ftl">  
  61.                     <bean  
  62.                      class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">  
  63.                         <property name="cache" value="true"/>  
  64.                         <property name="prefix" value="/"/>  
  65.                         <property name="suffix" value=".ftl"/>    
  66.                     </bean>  
  67.                 </entry>  
  68.                 <entry key="vm">  
  69.                     <bean  
  70.                      class="org.springframework.web.servlet.view.velocity.VelocityViewResolver">  
  71.                         <property name="cache" value="true"/>  
  72.                         <property name="prefix" value="/"/>  
  73.                         <property name="suffix" value=".vm"/>  
  74.                     </bean>  
  75.                 </entry>  
  76.             </map>  
  77.         </property>  
  78.     </bean>  
  79.       
  80. </beans>  


2 解析多视图请求的类

 

[java]  view plain copy
  1. package com.spring.action;  
  2.   
  3. import java.util.Locale;  
  4. import java.util.Map;  
  5. import org.springframework.web.servlet.View;  
  6. import org.springframework.web.servlet.ViewResolver;  
  7.   
  8. /** 
  9.  * @author Jeson 
  10.  * @blog:http://www.gbsou.com 
  11.  * @date:Oct 20, 2009 8:39:27 AM 
  12.  * @version :1.0 
  13.  *  
  14.  */  
  15. public class MultiViewResover implements ViewResolver {  
  16.   
  17.     private Map<String, ViewResolver> resolvers;  
  18.   
  19.     @Override  
  20.     public View resolveViewName(String viewName, Locale locale)  
  21.             throws Exception {  
  22.         int n = viewName.lastIndexOf("_"); // 获取  
  23.                                             // viewName(modelAndView中的名字)看其有没有下划线  
  24.         if (n == (-1))  
  25.             return null; // 没有则直接返回空  
  26.         // 有的话截取下划线后面的字符串 这里一般是jsp,ftl,vm与配置文件中的<entry key="ftl">的key匹配  
  27.         String suffix = viewName.substring(n + 1);  
  28.         // 根据下划线后面的字符串去获取托管的视图解析类对象  
  29.         ViewResolver resolver = resolvers.get(suffix);  
  30.   
  31.         // 取下划线前面的部分 那时真正的资源名.比如我们要使用hello.jsp 那viewName就应该是hello_jsp  
  32.         viewName = viewName.substring(0, n);  
  33.         if (resolver != null)  
  34.             return resolver.resolveViewName(viewName, locale);  
  35.         return null;  
  36.     }  
  37.   
  38.     public Map<String, ViewResolver> getResolvers() {  
  39.         return resolvers;  
  40.     }  
  41.   
  42.     public void setResolvers(Map<String, ViewResolver> resolvers) {  
  43.         this.resolvers = resolvers;  
  44.     }  
  45. }  


3. action

[java]  view plain copy
  1. package com.spring.action;  
  2.   
  3. import java.util.HashMap;  
  4. import java.util.Map;  
  5.   
  6. import org.springframework.stereotype.Controller;  
  7. import org.springframework.web.bind.annotation.RequestMapping;  
  8. import org.springframework.web.servlet.ModelAndView;  
  9.   
  10. @Controller  
  11. public class HelloWorldAction {  
  12.   
  13.     @RequestMapping(value = "/helloworld.do")  
  14.     public ModelAndView hello() {  
  15.         ModelAndView modelAndView = new ModelAndView();  
  16.         modelAndView.setViewName("hello_jsp");  
  17.         modelAndView.addObject("message", "Hello,SpringMvc");  
  18.         return modelAndView;  
  19.     }  
  20.   
  21.     @RequestMapping(value = "/welcome.do")  
  22.     public ModelAndView helloVm() {  
  23.         // ModelAndView modelAndView=new ModelAndView();  
  24.         // modelAndView.setViewName("freemarker_ftl");  
  25.         // modelAndView.addObject("message", "Hello,Velocity");  
  26.         // return modelAndView;  
  27.         Map map = new HashMap();  
  28.         return new ModelAndView("freemarker_ftl",  map); // 根据之前的解释这里就是去寻找  
  29.                                                             // user.ftl资源  
  30.   
  31.     }  
  32.   
  33.     @RequestMapping(value = "/free.do")  
  34.     public ModelAndView helloFreeMarker() {  
  35.         ModelAndView modelAndView = new ModelAndView();  
  36.         modelAndView.setViewName("welcome");  
  37.         modelAndView.addObject("message", "Hello,Freemarker");  
  38.         return modelAndView;  
  39.     }  
  40.   
  41. }  


这样 在页面键入对应action就可以访问对应的视图实现了

C++继承与多态 - 继承多态原理01 C++继承多态原理讲解 阅读详情

相关推荐

用逐飞STC32G库做个智能小车:编码器测速、PWM调电机、ADC读电池电压(完整项目)

本文详细介绍了如何使用逐飞科技的STC32G12K128开源库构建智能小车项目,涵盖编码器测速、PWM电机控制和电池电压监测等核心功能。通过硬件选型、开发环境搭建、代码实现及调试技巧的全流程讲解,帮助开发者快速掌握基于STC32G的嵌入式系统开发,实现高性能的智能小车控制。

weixin_42526417的博客 194

Spring MVC多视图配置

原文地址: [java] view plaincopy 1.Spring配置的XML   [html] view plaincopy xml version="1.0" encoding="UTF-8"?>      beans xmlns="http://www.springframework.o

竹林幽深 739

(实测可用)STM32L431RCT6开发板-实验1 跑马灯实验

一、开发板平台简介: 1、开发板资源简介 (1)开发板主芯片型号:STM32L431RCT6 (2)开发板主芯片封装:LQFP-64_10x10x05P (3)开发板主芯片内核:ARM® Cortex®-M4 (4)开发板主芯片主频:80MHz (5)开发板主芯片Flash大小:256KB (6)开发板主芯片RAM大小:64KB

zhej2014的博客 3166

Java小项目中WEB-INF下jsp页面如何访问

一:一般为啥要把jsp页面放在WEB-INF呐? 这样主要是为了网站的安全的角度来说的,WEB-INF是安全目录Tomcat 默认的访问路径是WebRoot下的index.jsp,放在WEB-INF下的页面一般不配置是无法访问的。 你的站点肯定有些页面是需要经过登录验证或其他验证后才能访问的啊,这些页面就放在web-inf里。 如果是能不经过验证就访问的页面,比如主页、登录页、欢迎...

kagurawill的博客 4万+

新入手的Atmel-ICE产品说明

【一句话自我介绍】 我是Atmel最新推出的功能强大的调试编程工具,适用于Atmel ARM® Cortex®-M的Atmel SAM和AVR® 系列芯片。 【我支持的软件】 完美支持Atmel Studio 6.2以上版本直接支持ICC8AVR以上版本支持烧录ICCAVR、CVAVR、IAR等生成的HEX文件 【我支持的器件】 支持AVR 32-bit MCUs的JTA

kaloha3的专栏 1万+

乐视三合一体感摄像头--基本信息及windows下部分开发

乐视三合一体感摄像头--基本信息及windows下部分开发Introduction基本信息Windows下使用安装驱动使用openNI使用imageJ调用RGB图像Q:参考资料 Introduction       乐视三合一体感摄像头是乐视对标kinect,做的一款3D体感摄像头;设计目的为用于电视机上体感使用的,包括其USB结构都是为了符合电视机直接操作的,同时是支持相应的游戏操作;但是自从乐视倒闭之后,价格从之前标价899降到了现在140+左

GRF-Sunomikp31 1万+

关于SpringMVC的XML配置步骤

param里面的classpath配置spring-mvc.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org...

qq_45225798的博客 5734

YOLO26全网首发:CVPR2026 MixerCSeg | DEGConv方向引导边缘门控,破解细长裂缝检测难题

DEGConv通过方向先验嵌入、边缘增强卷积和动态门控三大机制,针对性解决了YOLO在处理裂缝类细长、多方向、低对比度目标时的特征提取不足问题,显著提升了裂缝检测的精度与鲁棒性。

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 1032

springmvc-servlet.xml配置表功能解释

问:<?xml version="1.0" encoding="UTF-8" ?> 答: xml version="1.0"表示是此xml文件的版本是1.0 encoding="UTF-8"表示此文件的编码方式是UTF-8 问:<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> 答:定义此文件为SpringMVC配置.

披风秃头侠的博客 531

Windows VHD的新玩法——设置任意挂载点

vhd 挂载隐藏的虚拟分区 详细过程 分别使用CreateVirtualDisk和OpenVirtalDisk来创建和打开虚拟磁盘文件。 使用AttachVirtualDisk,必须具有管理员权限才能成功执行此步骤。 初始化设备(延时Sleep),获取附加 VHD 的 UNC 路径:\\.\PhysicalDrive# 。 使用FindFirstVolume/FindNextVolume枚举已安装的卷以查找虚拟磁盘上的卷。 使用SetVolumeMountPoint将卷挂载到文件夹或者设

圣三一 2584

RAP BDL 里的 field ( readonly ) 到底控制了什么?——从语法到运行时的全景解析

RAP行为定义中的只读字段控制 摘要:该代码片段展示的是RAP(ABAP RESTful Application Programming)行为定义语言(BDL)中的字段控制语法,用于声明业务对象中需由框架自动维护的只读字段。field ( readonly )语句将订单ID和审计字段(CreatedBy/CreatedAt等)标记为只读,确保这些字段在更新阶段不可修改。在managed场景下,RAP框架会自动处理这些行政性数据的写入:创建时填充创建信息,更新时刷新变更记录,并利用LocalLastChang

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 154

Spring 入门配置实例

从登陆模块介绍spring最简单的配置

zhu's 专栏 2166

DICOM图像知识:深入详解DICOM的层级关系

解析DICOM的四个主要层级:Patient(患者)、Study(检查)、Series(序列)和SOP(服务-对象对),探讨它们之间的关系、各自的唯一标识符以及在实际应用中的用途

编程技术探索者,分享C/C++、C#、Java、数据库等开发经验,聚焦实战技巧与AI兴趣,助力编程爱好者成长。 3304

Spring Mvc配置多视图 - tiles, velocity, freeMarker, jsp

<!-- Velocity --> <bean id="velocityViewResolver" class="org.springframework.web.servlet.view.velocity.VelocityViewResolver"> <property name="order" value="0" /> ...

210

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Spring mvc 配置多视图 jsp freemarker velocity等

spring-servlet: <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns

z69183787的专栏 4194

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

SpringMvc多视图整合配置教程(jsp、velocity、freemarker)

 SpringMvc多视图整合配置教程(jsp、velocity、freemarker) 博客分类: javaspringmvc springmvc多视图  原创整理不易,转载请注明出处:SpringMvc多视图整合配置教程(jsp、velocity、freemarker) 代码下载地址:http://www.zuidaima.com/share/1751860

hewusheng10的专栏 660

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

springmvc多视图解释配置详解

spring mvc多视图解释,配置详解 <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xm

hins 2578

spring mvc 多视图配置

1、创建MultiViewResover类

pan-zy的专栏 1072

Spring MVC多个视图解析器及优先级

<!-- Velocity视图解析器 默认视图 --> <bean id="velocityViewResolver" class="org.springframework.web.servlet.view.velocity.VelocityViewResolver"&...

chuque4897的博客 95

SpringMVC同时支持多视图 JSP Velocity Freemarker等 的一种思路实现

SpringMVC同时支持多视图 JSP Velocity Freemarker等 的一种思路实现

hgffhh的博客 306

传统的spring项目中springMVC配置多视图解析器(Freemarker+Velocity+Jsp)

application-context.xml <!-- velocity视图解析器 --> <bean id="velocityViewResolver" class="org.springframework.web.servlet.view.velocity.VelocityViewResolver"> <property name="order" va...

帝都的雁的博客 325
上一篇: jQuery Validate验证框架详解
下一篇: freemarker中文乱码解决办法
java85140031
博客等级 码龄18年 34粉丝 51原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值