0 0

Spring MVC Test Framework不支持freemarker吗?0

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
         http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
         version="3.0" metadata-complete="true">

    <display-name>lion web app</display-name>

    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>
            classpath:applicationContext-web.xml
        </param-value>
    </context-param>

    <!-- Bootsrtap the root application context as usual using ContextLoaderListener -->
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

    <filter>
        <filter-name>encodingFilter</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>UTF-8</param-value>
        </init-param>
        <init-param>
            <param-name>forceEncoding</param-name>
            <param-value>true</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>encodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

    <servlet>
        <servlet-name>dispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextClass</param-name>
            <param-value>
                org.springframework.web.context.support.AnnotationConfigWebApplicationContext
            </param-value>
        </init-param>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>
                com.nexusy.lion.web.config.WebConfig
                com.nexusy.lion.web.config.FreeMarkerConfig
            </param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>/*</url-pattern>
    </servlet-mapping>

    <session-config>
        <session-timeout>30</session-timeout>
    </session-config>

</web-app>

 

控制器

@Controller
public class ExampleController {

    @RequestMapping("/index")
    public String welcome() {
        return "index";
    }
}

 测试基类:

@WebAppConfiguration
@ContextConfiguration(classes={WebConfig.class, FreeMarkerConfig.class})
public class WebAppTests {

    @Autowired
    protected WebApplicationContext wac;

}

 测试类:

@RunWith(SpringJUnit4ClassRunner.class)
public class ExampleControllerTests extends WebAppTests {

    private MockMvc mockMvc;

    @Before
    public void setUp() throws Exception {
        this.mockMvc = MockMvcBuilders.webAppContextSetup(wac).build();

    }

    @Test
    public void testIndex() throws Exception {
        this.mockMvc.perform(get("/index")).andExpect(status().isOk());
    }
}

 爆异常:

javax.servlet.ServletException: Could not resolve view with name 'index' in servlet with name ''
	at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1190)
	at org.springframework.test.web.servlet.TestDispatcherServlet.render(TestDispatcherServlet.java:112)
	at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:992)
	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:939)
	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856)
	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:936)
	at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:827)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:812)
	at org.springframework.test.web.servlet.TestDispatcherServlet.service(TestDispatcherServlet.java:66)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
	at org.springframework.mock.web.MockFilterChain$ServletFilterProxy.doFilter(MockFilterChain.java:168)
	at org.springframework.mock.web.MockFilterChain.doFilter(MockFilterChain.java:136)
	at org.springframework.test.web.servlet.MockMvc.perform(MockMvc.java:134)
	at com.nexusy.lion.web.controller.ExampleControllerTests.testIndex(ExampleControllerTests.java:32)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
	at org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:74)
	at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:83)
	at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:72)
	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:231)
	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:88)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
	at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
	at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:71)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:174)
	at org.junit.runner.JUnitCore.run(JUnitCore.java:160)
	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:77)
	at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:195)
	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:63)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)

  如果视图改成jsp则可通过测试,Spring MVC Test Framework不支持freemarker吗?

2013年5月25日 10:15

相关推荐

    spring-mvc-test-sample-master.zip_spring mvc_springmvc-test

    4. **View**:视图负责数据的展示,Spring MVC支持多种视图技术,如JSP、Thymeleaf、FreeMarker等。 5. **ModelAndView**:这是Spring MVC提供的一个类,用于同时封装模型数据和视图名称,便于在控制器方法中返回。...

    SpringMVC jar包合集

    - spring-test 和 mockito 等库用于编写单元测试和集成测试,确保 Spring MVC 应用的功能正确性。 以上这些 jar 包组合在一起,构成了一个完整的 Spring MVC 开发环境,涵盖了从请求处理到视图渲染,再到数据持久...

    Spring MVC框架的各种依赖包下载

    1. **Spring Framework**: 这是Spring MVC的基础,包含了IoC(Inversion of Control,控制反转)容器、AOP(Aspect Oriented Programming,面向切面编程)支持、数据访问/集成、MVC框架等。Spring的核心库提供了一个...

    Spring MVC非注解测试

    非注解测试在Spring MVC中是指不依赖于Java注解如`@Test`,`@Controller`等进行的测试,而是通过XML配置文件来定义组件和它们之间的关系。这种方式虽然比注解方式繁琐,但有助于理解Spring MVC的工作原理。 首先,...

    spring mvc学习笔记

    12. **视图技术**:Spring MVC 支持多种视图技术,比如 JSP、Freemarker、Thymeleaf 等。 #### 二、基本理论与概念 - **Spring MVC 的工作流程**: 1. 用户通过浏览器向服务器发送请求。 2. DispatcherServlet ...

    官方原版源码spring-framework-5.0.11.RELEASE.zip

    其次,Spring MVC是Spring Framework的重要组成部分,用于构建Web应用程序。在5.0.11.RELEASE版本中,Spring MVC引入了更多现代Web开发特性,如支持WebSocket、RESTful API设计,以及对HTTP/2协议的支持,提升了Web...

    spring mvc 使用到的jar包

    - **视图技术**:Spring MVC可以与多种视图技术结合,如JSP、Thymeleaf、FreeMarker等,这需要额外的jar包支持。 - **测试**:对于单元测试和集成测试,Spring MVC提供`spring-test.jar`,配合Mockito、JUnit等工具...

    myMVC.rar_spring_springframework

    标题"myMVC.rar_spring_springframework"暗示了我们正在处理一个与Spring相关的项目,可能是一个简单的MVC Java应用,其中使用了Spring Framework。描述进一步确认了这一点,表明这是一个关于Spring Framework的实例...

    spring-framework-3.2.4-RELEASE Maven Source Code

    - **Web MVC增强**:增加了对RESTful风格的支持,增强了模板引擎的集成,如FreeMarker、Velocity等。 - **WebSocket支持**:引入WebSocket API,为实时通信提供了新的解决方案。 - **性能优化**:在内存使用和...

    spring-framework-3.2.3.RELEASE

    3.2.3.RELEASE版本中,Spring MVC引入了更多模板引擎的支持,如FreeMarker、Thymeleaf,同时增强了RESTful服务的支持。 4. **数据访问集成**:Spring提供了对各种数据库的集成,包括JDBC、ORM(如Hibernate、...

    Spring-Spring mvc-MyBatis

    Spring框架自2003年由Rod Johnson创立以来,一直是企业级Java应用开发领域中不可或缺的一部分。它通过提供一种轻量级的控制反转(IoC)容器,解决了传统企业应用开发中的复杂性问题。具体来说,Spring通过以下几个方面...

    Spring MVC实例

    实际上,Spring MVC 支持更复杂的应用场景,如拦截器、异常处理、数据绑定、国际化、模板引擎(如 Thymeleaf 或 FreeMarker)等。要深入理解 Spring MVC,建议学习以下主题: - AOP(面向切面编程)在 Spring MVC ...

    spring-framework-2.5.5

    同时,Spring MVC还提供了视图解析器,如JSP和FreeMarker,以及ModelAndView对象,用于在控制器和视图之间传递数据。 事务管理是企业级应用的核心部分,Spring 2.5.5提供了声明式和编程式的事务管理。声明式事务...

    spring-framework-5.3.21.zip源码

    Spring MVC还支持多种视图技术,如JSP、FreeMarker等。 4. **数据访问**:Spring框架提供了一整套与数据访问相关的支持,包括JDBC抽象层、ORM(Object-Relational Mapping)集成,如Hibernate和MyBatis,以及对...

    spring-framework-4.2.4.RELEASE

    综上所述,"spring-framework-4.2.4.RELEASE"是一个包含Spring框架核心特性的开发包,它为Java开发者提供了全面的工具集,支持企业级应用的开发,包括但不限于IoC、AOP、数据访问、Web开发、事务管理、测试、安全...

    Spring 5源代码(spring-framework-5.3.14.tar.gz)

    Spring MVC 是Spring Framework中的Web模块,提供了一种模型-视图-控制器的架构模式,用于构建RESTful的Web应用程序。它支持多种视图技术,如JSP、Thymeleaf、FreeMarker等。 5. **数据访问** Spring Data访问...

    spring-framework-4.3.7.RELEASE官方完整包加官方文档

    9. **Spring Test**:提供了一套全面的测试支持,包括单元测试和集成测试,使得测试 Spring 应用变得更加容易。 10. **WebSocket支持**:Spring 4.x 引入了对 WebSocket 协议的支持,允许开发实时双向通信应用。 ...

    spring mvc教程

    - **URL 表达式**:Spring MVC 提供了灵活的 URL 表达式支持,例如 `/user/*/createUser` 可以匹配 `/user/aaa/createUser` 和 `/user/bbb/createUser` 等路径。 以上是关于 Spring MVC 的详细介绍,涵盖了其基础...

    spring-framework-4.3.2.RELEASE.zip

    4.3.2版本中,MVC框架引入了更高效的DispatcherServlet,支持RESTful风格的URL映射,以及模板引擎(如Thymeleaf、FreeMarker)的集成,简化了视图层的开发。 5. **数据访问/集成**: Spring提供了对JDBC、ORM...

Global site tag (gtag.js) - Google Analytics