ViewResolver使用Java注释

Rav*_*ain 21 java model-view-controller spring annotations spring-mvc

Spring 3.1.1中是否可以使用Java注释配置视图解析器?

我完成了使用Java注释的所有配置,但我被卡在视图解析器中.

package com;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.jdbc.datasource.DriverManagerDataSource;
import javax.sql.DataSource;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import com.*;
import org.springframework.web.servlet.view.InternalResourceViewResolver;
import org.springframework.web.servlet.view.UrlBasedViewResolver;
import org.springframework.web.servlet.view.JstlView;

@Configuration
@ComponentScan("com")
public class AppConfig
{
    {
          //Other bean declarations
    }

    @Bean
    public UrlBasedViewResolver urlBasedViewResolver()
    {
        UrlBasedViewResolver res = new InternalResourceViewResolver();
        res.setViewClass(JstlView.class);
        res.setPrefix("/WEB-INF/");
        res.setSuffix(".jsp");

        return res;
    }
}
Run Code Online (Sandbox Code Playgroud)

我使用此代码并运行应用程序,但它没有返回适当的视图.但是,如果我在文件中配置了一个viewresolverapp-servlet.xml,它可以正常工作.

Ram*_*tha 33

您的类应该扩展WebMvcConfigurerAdapter类.请看下面的例子

@Configuration
@ComponentScan(basePackages="com")
@EnableWebMvc
public class MvcConfiguration extends WebMvcConfigurerAdapter{

    @Bean
    public ViewResolver getViewResolver(){
        InternalResourceViewResolver resolver = new InternalResourceViewResolver();
        resolver.setPrefix("/WEB-INF/views/");
        resolver.setSuffix(".jsp");
        return resolver;
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 它当然不必扩展WebMvcConfigurerAdapter(如上面的axtact所述),但这是一个很好的方法. (6认同)