internalViewResolver无法正常工作

时间:2016-12-01 12:39:56

标签: java spring-mvc

我已经开始使用spring MVC了。但我的internalViewReolver只返回字符串而不是从我的路径中解析页面。请帮帮我,我哪里出错了?

这是我的配置文件。:

package assignment.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.ViewResolver;
import org.springframework.web.servlet.config.annotation.DefaultServletHandlerConfigurer;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
import org.springframework.web.servlet.view.InternalResourceViewResolver;

@Configuration
@EnableWebMvc
@ComponentScan(basePackages={"assignment.view"})
public class WebConifg extends WebMvcConfigurerAdapter {

    @Override
    public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {

        configurer.enable();;
    }
    @Bean
    public ViewResolver viewResolver(){
        InternalResourceViewResolver resolver=new InternalResourceViewResolver("/WEB-INF/views/",".jsp");
        resolver.setExposeContextBeansAsAttributes(true);

        return resolver;

    }
} 

这是我的控制器:

package assignment.view;

import java.util.Map;

import org.springframework.http.MediaType;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

import assignment.model.User;

@RestController(value="/login")
public class Controller {

@RequestMapping(method=RequestMethod.POST)
public String userLogin(@RequestBody User user){
    System.out.println(user);
    return "success";
}

@RequestMapping(method=RequestMethod.GET)
public String register(Model model){
    User user=new User();
    model.addAttribute("userForm", user);
    System.out.println(user);
    return "Register";
}
}

我的WebIntilizer.java

package assignment.config;

import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;

public class WebInitilizer extends AbstractAnnotationConfigDispatcherServletInitializer {

    @Override
    protected Class<?>[] getRootConfigClasses() {

        return new Class<?>[]{RootConfig.class};
    }

    @Override
    protected Class<?>[] getServletConfigClasses() {

        return new Class<?>[]{WebConifg.class};
    }

    @Override
    protected String[] getServletMappings() {

        return new String[]{"/"};
    }

}

所以,当我点击http://localhost:8080/assignment/login时,我希望显示Register.jsp,但它只是将Register显示为字符串。

1 个答案:

答案 0 :(得分:0)

将注释从RestController更改为Controller注释。

它肯定会起作用。

当您使用RestController注释时,Web应用程序将以文本格式发送响应,如简单文本(您的案例),json,xml。