ssm注解版配置
配置如下
package top.redheart.templet.company;
import ch.qos.logback.core.spi.LogbackLock;
import org.springframework.web.WebApplicationInitializer;
import org.springframework.web.context.ContextLoaderListener;
import org.springframework.web.context.support.AnnotationConfigWebApplicationContext;
import org.springframework.web.filter.CharacterEncodingFilter;
import org.springframework.web.servlet.DispatcherServlet;
import top.redheart.templet.company.config.MvcConfig;
import top.redheart.templet.company.config.TemplesConfig;
import javax.servlet.*;
/**
* @author Administrator
*/
public class WebAppInitializer implements WebApplicationInitializer {
@Override
public void onStartup(ServletContext servletContext) throws ServletException {
//创建springcontextlister上下文监听器
AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext();
context.register(TemplesConfig.class);
servletContext.addListener(new ContextLoaderListener(context));
//创建dispatcher
AnnotationConfigWebApplicationContext dispatcherServlet = new AnnotationConfigWebApplicationContext();
dispatcherServlet.register(MvcConfig.class);
ServletRegistration.Dynamic dispatcher = servletContext.addServlet("dispatcher", new DispatcherServlet(dispatcherServlet));
dispatcher.setLoadOnStartup(1);
dispatcher.addMapping("/*");//注意此处多了一个*
//创建字符过滤
FilterRegistration.Dynamic encodingFilter = servletContext.addFilter("encodingFilter", new CharacterEncodingFilter());
encodingFilter.setInitParameter("encoding", "UTF-8");
encodingFilter.setInitParameter("forceEncoding", "true");
encodingFilter.addMappingForUrlPatterns(null, false, "/*");
//添加日志文件
//开启multipart格式支持
MultipartConfigElement multipartConfigElement = new MultipartConfigElement(servletContext.getRealPath(""));
dispatcher.setMultipartConfig(multipartConfigElement);
}
}
出现的问题
DEBUG [2019-08-05 17:41:55,261][] org.springframework.core.log.LogFormatUtils:91 - GET "/hello", parameters={} DEBUG [2019-08-05 17:41:55,269][] org.springframework.web.servlet.handler.AbstractHandlerMapping:420 - Mapped to public java.lang.String top.redheart.templet.company.controller.IndexController.hello() INFO [2019-08-05 17:41:55,287][] top.redheart.templet.company.controller.IndexController:19 - [访问hello] DEBUG [2019-08-05 17:41:55,310][] org.springframework.web.servlet.view.AbstractView:309 - View name 'hello', model {} DEBUG [2019-08-05 17:41:55,320][] org.springframework.web.servlet.view.InternalResourceView:168 - Forwarding to [/WEB-INF/jsp/hello.jsp] DEBUG [2019-08-05 17:41:55,323][] org.springframework.core.log.LogFormatUtils:91 - "FORWARD" dispatch for GET "/WEB-INF/jsp/hello.jsp", parameters={} WARN [2019-08-05 17:41:55,327][] org.springframework.web.servlet.DispatcherServlet:1249 - No mapping for GET /WEB-INF/jsp/hello.jsp DEBUG [2019-08-05 17:41:55,327][] org.springframework.web.servlet.FrameworkServlet:1126 - Exiting from "FORWARD" dispatch, status 404 DEBUG [2019-08-05 17:41:55,328][] org.springframework.web.servlet.FrameworkServlet:1130 - Completed 404 NOT_FOUND
换过很多方式去处理,都不能解决问题,
既然是报的No mapping,也就是说没有找到或者没有拦截到对应的controller
那么就有可能是拦截路径有问题,
抱着试试看的态度,把上边标注的多余的*号去掉,拦截路径变为/
问题解决