获取Spring视图而不将Controller映射到URL模式

时间:2018-01-25 08:46:23

标签: java spring-mvc

我需要像Controller方法一样创建一个方法,但不要将其映射到请求模式,因为它应该从另一段代码中调用。

该方法将采用一些参数,并可能填充模型。

基本上我希望Spring MVC能够将模型与视图jsp合并,并且可能将它打印到我提供的HttpServletResponse并设置一些像Spring一样的其他头文件。

应该是几行代码,但我无法想象:•

1 个答案:

答案 0 :(得分:1)

您可以尝试使用ViewControllerRegistry生成视图,而无需使用控制器。

请检查以下示例。我正在使用基于java的配置。

@Configuration
@EnableWebMvc
public class MVCConfig extends WebMvcConfigurerAdapter {
    @Bean  
    public InternalResourceViewResolver viewResolver() {  
    InternalResourceViewResolver resolver = new InternalResourceViewResolver();  
        resolver.setPrefix("/WEB-INF/pages/");  
        resolver.setSuffix(".jsp");
        return resolver;  
    }
    @Override
    public void addViewControllers(ViewControllerRegistry registry) {
        registry.addViewController("/home").setViewName("myhome");
        registry.addViewController("/hello").setViewName("helloworld");
        registry.addRedirectViewController("/home", "/hello");
        registry.addStatusController("/detail", HttpStatus.BAD_REQUEST);        
    }    
}

我的myhome.jsp文件将是

<html>
<head><title>Home Page</title></head>
<body>
   <h3> Home Page </h3>
</body>
</html>