Samir
Samir

Reputation: 37

Error : No mapping found for HTTP request with URI spring mvc without xml

Getting this error while returning Html page in response from controller

org.springframework.web.servlet.PageNotFound noHandlerFound WARNING: No mapping found for HTTP request with URI [/SpringMVCDemo/WEB-INF/response.html] in DispatcherServlet with name 'dispatcher'

where to put response.html?

Here is my code

Controller class
-----------------
@Controller
public class LoginController {

    @RequestMapping("/login")
    public ModelAndView login(@RequestParam(name = "username") String username,
                             @RequestParam(name = "password") String password){

        String str = "Welcome " + username;
        ModelAndView modelAndView = new ModelAndView();
        modelAndView.setViewName("response");
        modelAndView.addObject("response",str);

        return modelAndView;
    }
}
Config file
------------
@Configuration
@EnableWebMvc
@ComponentScan(basePackages = "com.skuba.*")
public class MvcConfig extends WebMvcConfigurerAdapter{

    @Bean
    public ViewResolver viewResolver() {
        InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
        viewResolver.setViewClass(JstlView.class);
        viewResolver.setPrefix("/WEB-INF/");
        viewResolver.setSuffix(".html");

        return viewResolver;
    }
}
This is dispatcher controller
------------------------------
public class FrontController extends AbstractAnnotationConfigDispatcherServletInitializer {

    @Override
    protected Class<?>[] getRootConfigClasses() {
        return new Class[] {MvcConfig.class};
    }

    @Override
    protected Class<?>[] getServletConfigClasses() {
        return new Class[0];
    }

    @Override
    protected String[] getServletMappings() {
        return new String[] {"/"};
    }
}

Upvotes: 0

Views: 132

Answers (1)

Paul Richard
Paul Richard

Reputation: 464

Assuming the view files are in the right directory(i.e., "/WEB-INF/") try adding the following to the MvcConfig class.

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

Upvotes: 1

Related Questions