我的一个控制器中有以下代码:@Controller@RequestMapping("/preference")public class PreferenceController { @RequestMapping(method = RequestMethod.GET, produces = "text/html") public String preference() { return "preference"; }}我只是想使用Spring MVC测试来测试它,如下所示:@ContextConfiguration@WebAppConfiguration@RunWith(SpringJUnit4ClassRunner.class)public class PreferenceControllerTest { @Autowired private WebApplicationContext ctx; private MockMvc mockMvc; @Before public void setup() { mockMvc = webAppContextSetup(ctx).build(); } @Test public void circularViewPathIssue() throws Exception { mockMvc.perform(get("/preference")) .andDo(print()); }}我收到以下异常:循环视图路径[preference]:将再次分派回当前处理程序URL [/ preference]。检查您的ViewResolver设置!(提示:由于默认视图名称的生成,这可能是未指定视图的结果。)我感到奇怪的是,当我加载包含模板和视图解析器的“完整”上下文配置时,它工作正常,如下所示:<bean class="org.thymeleaf.templateresolver.ServletContextTemplateResolver" id="webTemplateResolver"> <property name="prefix" value="WEB-INF/web-templates/" /> <property name="suffix" value=".html" /> <property name="templateMode" value="HTML5" /> <property name="characterEncoding" value="UTF-8" /> <property name="order" value="2" /> <property name="cacheable" value="false" /></bean>我很清楚,模板解析器添加的前缀可确保应用程序使用此模板解析器时没有“圆形视图路径”。但是我应该如何使用Spring MVC测试来测试我的应用程序呢?有人知道吗?
3 回答
宝慕林4294392
TA贡献2021条经验 获得超8个赞
我通过使用@ResponseBody解决了这个问题,如下所示:
@RequestMapping(value = "/resturl", method = RequestMethod.GET, produces = {"application/json"})
@ResponseStatus(HttpStatus.OK)
@Transactional(value = "jpaTransactionManager")
public @ResponseBody List<DomainObject> findByResourceID(@PathParam("resourceID") String resourceID) {
- 3 回答
- 0 关注
- 1017 浏览
添加回答
举报
0/150
提交
取消