【问题标题】:Testing Struts 2 actions, result type freemarker测试 Struts 2 动作,结果类型 freemarker
【发布时间】:2012-06-04 10:38:06
【问题描述】:

我正在尝试测试指向 freemarker 页面 (.ftl) 的 Struts 2 操作。当我使用 Spring 框架时,我的测试扩展了 StrutsSpringTestCase。我的问题是,在操作执行之后,它会搜索结果 freemarker 页面,但在它获取页面之前,它将语言环境(在我的情况下为 en_GB)附加到 ftl 页面。因此一无所获。

例如:

操作执行 - 结果页面 = login.ftl 但搜索 login_en_GB.ftl

动作执行 - 结果页面 = index.ftl 但搜索 index_en_GB.ftl

我不知道它为什么这样做或如何改变它。

【问题讨论】:

    标签: spring junit struts2 locale freemarker


    【解决方案1】:

    我认为您需要做的是在控制器上设置一个模拟 servlet 请求。我们在代码中做了类似的事情,但要模拟发布请求:

    import org.springframework.mock.web.MockHttpServletRequest;
    import org.springframework.mock.web.MockHttpServletResponse;
    
    protected HttpServletRequest httpServletPostRequest = new MockHttpServletRequest("POST", "/");
    httpServletPostRequest.addPreferredLocale(yourLocale);
    controller.setServletRequest(httpServletPostRequest);
    

    【讨论】:

      【解决方案2】:

      我用于此问题的解决方法是在执行操作后立即停止进程。这样做我并没有利用全部功能,但由于显然不支持 freemarker,这是我想到的最佳方式。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-08-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-02-01
        相关资源
        最近更新 更多