1

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

例如 :

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

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

我无法弄清楚它为什么这样做或如何改变它。

4

2 回答 2

0

我认为您需要做的是在控制器上设置一个模拟 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);
于 2012-06-01T14:43:23.503 回答
0

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

于 2012-07-06T09:15:28.603 回答