springMVCr的配置如下: 
Java代码 
<?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:p="http://www.springframework.org/schema/p"  
    xmlns:context="http://www.springframework.org/schema/context"  
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd  
                http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">  
      
    <context:component-scan base-package="com.ahmi.controller" />  
    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver" />  
  
    <bean id="freeerResolver" class="org.springframework.web.servlet.view.freeer.FreeMarkerViewResolver">  
        <property name="order" value="1"/>  
        <property name="prefix" value="/WEB-INF/freeer"/>  
        <property name="suffix" value=".ftl"/>  
        <property name="contentType" value="text/html;charset=utf-8"/>  
        <property name="viewClass">  
            <value>org.springframework.web.servlet.view.freeer.FreeMarkerView</value>  
        </property>  
    </bean>  
      
    <bean id="jspResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:prefix="/WEB-INF/jsp/" p:suffix=".jsp" p:order="2" />  
       
    <bean id="freeerConfig"  
        class="org.springframework.web.servlet.view.freeer.FreeMarkerConfigurer">  
          
        <property name="defaultEncoding" value="UTF-8"/>    
    </bean>  
</beans>  Controller如下: 
Java代码 
@Controller  
@RequestMapping("/user")  
@Scope("prototype")  
public class UserController {  
      
    @RequestMapping  
    public String show(@RequestParam long userId,ModelMap model){  
        System.out.println(Config.getString("user#Test"));  
        User u = userService.getUser(userId);  
        System.out.println(u.getUser2().size());  
        model.addAttribute("u",u);  
        return "/user/test";  
    }  
}  在WEB-INF的freeer/user目录下有test.ftl文件,但是通过路径:http://localhost:8080/Test/user?method=show&userId=20访问的时候却不能跳到ftl模板处。 
分析日志时发现有这么几句话: 
2010-01-22 15:48:41,468 [http-8080-1] DEBUG org.springframework.beans.factory.support.DefaultListableBeanFactory  - Returning cached instance of singleton bean 'freeerConfig' 
2010-01-22 15:48:41,468 [http-8080-1] DEBUG org.springframework.beans.factory.support.DefaultListableBeanFactory  - Invoking afterPropertiesSet() on bean with name '/user/test' 
2010-01-22 15:48:41,468 [http-8080-1] DEBUG freeer.cache  - Could not find template in cache, creating new one; id=[WEB-INF/freeer/user/test.ftl[zh_CN,UTF-8,parsed] ] 
2010-01-22 15:48:41,500 [http-8080-1] DEBUG org.springframework.web.servlet.view.freeer.FreeMarkerView  - No FreeMarker view found for URL: /WEB-INF/freeer/user/test.ftl 
2010-01-22 15:48:41,500 [http-8080-1] DEBUG org.springframework.web.servlet.view.freeer.FreeMarkerViewResolver  - Cached view [/user/test] 
2010-01-22 15:48:41,500 [http-8080-1] DEBUG org.springframework.beans.factory.support.DefaultListableBeanFactory  - Invoking afterPropertiesSet() on bean with name '/user/test' 
2010-01-22 15:48:41,500 [http-8080-1] DEBUG org.springframework.web.servlet.view.InternalResourceViewResolver  - Cached view [/user/test] 
非常郁闷啊,我在这个目录下确实存在模板文件啊,为什么它说不存在呢??有人知道为什么吗? 

解决方案 »

  1.   

    Spring MVC 的Controller展示ModelAndView的方式有很多的,你使用的哪种方式整合的FreeMarker??我整合json的时候就费了很多时间, 使用Spring MVC的不是很多。 呵呵。@RequestMapping 
        public String show(@RequestParam long userId,ModelMap model){ 
            System.out.println(Config.getString("user#Test")); 
            User u = userService.getUser(userId); 
            System.out.println(u.getUser2().size()); 
            model.addAttribute("u",u); 
            return "/user/test"; 
        } 你这个我就很看不明白  , 你不返回 ModelAndView 么???  我们一直这个样子的public ModelAndView retXX(){Map map = new HashMap();
    map.put(,....);
    return new ModelAndView("链接地址",map);
    }
      

  2.   

    SpringMVC里Controller的返回类型是多种的,可以返回ModelAndView,可以返回String,可以返回void。
    这些都不是不定的。