I am implementing the spring MVC in 100% java code mode This is the code i have written
index.jsp
<!-- forward to home page -->
<jsp:forward page="home.htm"></jsp:forward>
home.jsp
<!-- header page -->
<jsp:include page="header.jsp"></jsp:include>
<h1>Hi this is Home Page</h1>
<!-- footer page -->
<jsp:include page="footer.jsp"></jsp:include>
this is my dispatcher servlet initializer class
package com.example.config;
import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;
public class ExampleAppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
@Override
protected Class<?>[] getRootConfigClasses() {
// return rootapp config class
return null;
}
@Override
protected Class<?>[] getServletConfigClasses() {
// return webmvc config class
return new Class[] {ExampleConfig.class};
}
@Override
protected String[] getServletMappings() {
//retunr url
return new String[] {"*.htm"};
}
}//ExampleAppInitializer
this is spring web MVC configuration class code
package com.example.config;
import java.util.Properties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.HandlerMapping;
import org.springframework.web.servlet.ViewResolver;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.handler.SimpleUrlHandlerMapping;
import org.springframework.web.servlet.mvc.Controller;
import org.springframework.web.servlet.mvc.ParameterizableViewController;
import org.springframework.web.servlet.view.InternalResourceViewResolver;
@EnableWebMvc
@Configuration
@ComponentScan(basePackages="com.example.*")
public class ExampleConfig extends WebMvcConfigurerAdapter{
@Bean(id="createHandlerMapping")
public HandlerMapping createHandlerMapping() {
System.out.println("createHandlerMapping ");
// lcal variable declarations
SimpleUrlHandlerMapping simpleUrlHandlerMapping = null;
Properties mappingProperties = null;
// create object of handler
simpleUrlHandlerMapping = new SimpleUrlHandlerMapping();
mappingProperties = new Properties();
// mapping the urls
mappingProperties.put("/home.htm", "homePageController");
simpleUrlHandlerMapping.setMappings(mappingProperties);
return simpleUrlHandlerMapping;
}// createHandlerMapping
@Bean(id="homePageController")
public Controller homePageController() {
System.out.println("homePageController ");
// local variable declarations
ParameterizableViewController homePageController = null;
// create the objects
homePageController = new ParameterizableViewController();
homePageController.setViewName("home");
// return homePageController
return homePageController;
}// homePageController
@Bean(id="getViewName")
public ViewResolver getViewName() {
System.out.println("getViewName ");
// local variable declarations
InternalResourceViewResolver getViewName = null;
// create the objects
getViewName = new InternalResourceViewResolver();
// setting the paths
getViewName.setPrefix("/WEB-INF/view/");
getViewNa me.setSuffix(".jsp");
// return
return getViewName;
}// getViewName
}// ExampleConfig
so when I deploy it in tomcat 8 server I am getting the 404 error like http://localhost:7979/example/ /example/home.htm not found can anyone help me to solve this
first you need to change this method
to this
here, do not use WebMvcConfigurerAdapter, because it is Deprecated in Spring 5 and later version. (I think you refered an old tutorial)
instead of that config try this kind of config
above code is worked for me, let me know anything happened wrong and I recommend you to refer this Java config example