【问题标题】:Get Spring view without mapping a Controller to a URL pattern在不将控制器映射到 URL 模式的情况下获取 Spring 视图
【发布时间】:2018-01-25 08:46:23
【问题描述】:

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

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

基本上,我希望 Spring MVC 完成将模型与视图 jsp 合并的工作,并且可能会将其打印到我提供的 HttpServletResponse 并设置一些其他标头,就像 Spring 通常会做的那样。

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

【问题讨论】:

    标签: java spring-mvc


    【解决方案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>
    

    【讨论】:

    • 谢谢,但它仍然将视图映射到一个 url;我知道我的标题“没有控制器”具有误导性,让我将其更改为“没有将控制器映射到 url 模式”
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-16
    • 2014-12-18
    • 2012-10-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多