创建名为“xmlViewResolver”的Bean时出错

时间:2018-01-27 15:46:14

标签: spring-boot

我正在构建一个带有spring boot的小型Web应用程序,因此我没有xml文件,因为所有配置都是由Spring启动功能处理的,但我决定添加一个xmlViewResolver并给予第一优先级。据说我一直收到以下错误:

请尽可能帮助我,谢谢

配置文件如下:

package com.aubrey.demo;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.support.ReloadableResourceBundleMessageSource;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
import org.springframework.web.servlet.config.annotation.DefaultServletHandlerConfigurer;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
import org.springframework.web.servlet.view.InternalResourceViewResolver;
import org.springframework.web.servlet.view.XmlViewResolver;

@Configuration
@ComponentScan
@EnableWebMvc
public class WebMvcConfig extends WebMvcConfigurerAdapter {

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/resources/**").addResourceLocations("/resources/");
    }

    @Override
    public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
        configurer.enable();
    }


    @Bean
    public InternalResourceViewResolver jspViewResolver() {
        InternalResourceViewResolver resolver = new InternalResourceViewResolver();
        resolver.setPrefix("/WEB-INF/jsps/");
        resolver.setSuffix(".jsp");
        return resolver;
    }


    @Bean(name = "messageSource")
    public ReloadableResourceBundleMessageSource getMessageSource() {
        ReloadableResourceBundleMessageSource resource = new ReloadableResourceBundleMessageSource();
        resource.setBasename("classpath:messages");
        resource.setDefaultEncoding("UTF-8");
        return resource;
    }

    @Bean
    public XmlViewResolver xmlViewResolver(){

        XmlViewResolver resolver = new XmlViewResolver();
        Resource resource = new ClassPathResource("/WEB-INF/Spring/views.xml");
        resolver.setLocation(resource);
        //xmlViewResolver().setOrder(1);
        return resolver;
    }
}

views.xml is as follows :
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="http://www.springframework.org/schema/beans
            http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">

        <bean id="welcome" class="org.springframework.web.servlet.view.JstlView">
            <property name="url" value="/WEB-INF/views/xml_welcome.jsp" />
        </bean>


    </beans>

</beans>

家庭控制器如下:

package com.aubrey.demo.controllers;

import com.aubrey.demo.data.entities.Project;
import com.aubrey.demo.data.entities.Sponsor;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class HomeController {

    @RequestMapping("/home")
    public String goHome(Model model){

        Project project = new Project();
        project.setName("First Project");
        project.setSponsor(new Sponsor("NASA", "555-555-5555", "nasa@nasa.com"));
        project.setDescription("This is a simple project sponsored by NASA");

        model.addAttribute("currentProject", project);

        return "welcome";
    }
}

0 个答案:

没有答案