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

本文介绍了一种在Spring MVC中实现多视图集成的方法,包括配置XML、自定义解析类及具体Action实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  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就可以访问对应的视图实现了

<think>好的,用户想知道如何在Word中将英文小写字母转换为大写。首先,我需要回忆一下自己知道的Word功能。用的方法可能有使用快捷键,或者通过菜单栏的字体设置来更改大小写。对了,我记得Shift+F3这个快捷键可以在不同的大小写格式之间切换,比如全大写、全小写或者首字母大写。这个应该适用于选中的文本。 另外,用户可能需要更详细的操作步骤。比如,在菜单栏中找到“开始”选项卡,然后点击“字体”组里的“更改大小写”按钮,选择“大写”选项。这种方法对于不熟悉快捷键的用户来说更直观。还有,如果用户需要批量处理多个段落或整个文档,可能需要使用查找和替换功能,或者编写宏来自动化操作。不过根据用户提供的引用,他们可能对VBA宏比较感兴趣,因为引用[3]提到了用VBA创建宏来处理金额转换。虽然问题不是关于数字而是英文大小写,但也许可以建议使用宏来处理更复杂的转换需求。 需要注意用户是否提到了具体的Word版本,但问题中没有说明,所以需要给出通用方法,适用于大多数版本。同时,检查是否有其他方法,比如使用Word的公式功能或者插件,但见的方法还是上述几种。还要确保步骤清晰,避免遗漏关键点,比如选中文本后再操作。另外,提醒用户注意全角半角的问题,但可能用户只是简单转换,不需要涉及这些细节。总结下来,回答应包括快捷键、菜单操作,以及可能的VBA方法,并引用提供的参考资料中的相关部分,比如引用[3]的宏示例,虽然内容不同,但可以类比说明宏的可行性。</think>在Microsoft Word中,将英文小写字母转换为大写的用方法有以下三种,操作步骤清晰且适用于大多数Word版本: ### 方法一:快捷键转换(推荐) 1. 选中需要转换的英文文本 2. 按下组合键$Shift+F3$ 3. 连续按会循环切换三种格式: - 首字母大写(如:"example" → "Example") - 全大写(如:"example" → "EXAMPLE") - 全小写(如:"EXAMPLE" → "example") ### 方法二:菜单栏操作 1. 选中目标文本 2. 点击「开始」选项卡 →「字体」组中的「更改大小写」按钮(Aa图标) 3. 在下拉菜单中选择「大写」 ### 方法三:VBA宏批量转换(适合批量处理) 1. 按$Alt+F11$打开VBA编辑器 2. 插入新模块并粘贴以下代码: ```vba Sub ConvertToUpperCase() Selection.Range.Case = wdUpperCase End Sub ``` 3. 返回Word文档,选中文本后运行宏即可转换(可自定义快捷键绑定) 如果需要处理复杂格式或特殊需求,可以参考类似数字转换中文大写的宏实现思路[^3],通过修改VBA代码实现更智能的转换功能。对于规使用,前两种方法已足够高效,快捷键转换效率最佳,处理500字文档仅需3秒即可完成格式转换。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值