为了账号安全,请及时绑定邮箱和手机立即绑定

Spring MVC测试中如何避免“圆形视图路径”异常

Spring MVC测试中如何避免“圆形视图路径”异常

MMTTMM 2019-11-13 09:47:59
我的一个控制器中有以下代码:@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) {


查看完整回答
反对 回复 2019-11-13
  • 3 回答
  • 0 关注
  • 1017 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信