前端html页面迁移出现问题
来源:13-8 前端页面的迁移
qq_陌路_7
2018-06-13
老师,我在跟着看的时候,出现了问题 错误信息是:javax.servlet.ServletException: Could not resolve view with name '/shop/shoplist' in servlet with name 'dispatcherServlet' at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1305) ~[spring-webmvc-5.0.6.RELEASE.jar:5.0.6.RELEASE] at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1069) ~[spring-webmvc-5.0.6.RELEASE.jar:5.0.6.RELEASE] at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1008) ~[spring-webmvc-5.0.6.RELEASE.jar:5.0.6.RELEASE] at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925) ~[spring-webmvc-5.0.6.RELEASE.jar:5.0.6.RELEASE] at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974) ~[spring-webmvc-5.0.6.RELEASE.jar:5.0.6.RELEASE] at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:866) ~[spring-webmvc-5.0.6.RELEASE.jar:5.0.6.RELEASE]
写回答
2回答
-
同学好,你说拷贝webapp文件夹过去是什么意思?按照视频去配去迁移是没有问题的,不然已经有很多同学报了,我们把xml去掉,转换成代码的形式其实就是跟xml里面定义的一模一样,没啥区别呢,重点就在这里
@Bean(name = "viewResolver") public ViewResolver createViewResolver() { InternalResourceViewResolver viewResolver = new InternalResourceViewResolver(); // 设置Spring 容器 viewResolver.setApplicationContext(this.applicationContext); // 取消缓存 viewResolver.setCache(false); // 设置解析的前缀 viewResolver.setPrefix("/WEB-INF/html/"); // 设置试图解析的后缀 viewResolver.setSuffix(".html"); return viewResolver; }
这里就定义了视图解析器了呢,当你访问/shop/shoplist 只要你定义了转发的controller ShopAdminController.java
package com.imooc.o2o.web.shopadmin; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; @Controller @RequestMapping(value = "shopadmin", method = { RequestMethod.GET }) /** * 主要用来解析路由并转发到相应的html中 * * @author xiangze * */ public class ShopAdminController { @RequestMapping(value = "/shopoperation") public String shopOperation() { // 转发至店铺注册/编辑页面 return "shop/shopoperation"; } @RequestMapping(value = "/shoplist") public String shopList() { // 转发至店铺列表页面 return "shop/shoplist"; } @RequestMapping(value = "/shopmanagement") public String shopManagement() { // 转发至店铺管理页面 return "shop/shopmanagement"; } @RequestMapping(value = "/productcategorymanagement", method = RequestMethod.GET) private String productCategoryManage() { // 转发至商品类别管理页面 return "shop/productcategorymanagement"; } @RequestMapping(value = "/productoperation") public String productOperation() { // 转发至商品添加/编辑页面 return "shop/productoperation"; } @RequestMapping(value = "/productmanagement") public String productManagement() { // 转发至商品管理页面 return "shop/productmanagement"; } @RequestMapping(value = "/shopauthmanagement") public String shopAuthManagement() { // 转发至店铺授权页面 return "shop/shopauthmanagement"; } @RequestMapping(value = "/shopauthedit") public String shopAuthEdit() { // 转发至授权信息修改页面 return "shop/shopauthedit"; } @RequestMapping(value = "/operationsuccess", method = RequestMethod.GET) private String operationSuccess() { // 转发至操作失败的页面 return "shop/operationsuccess"; } @RequestMapping(value = "/operationfail", method = RequestMethod.GET) private String operationFail() { // 转发至操作成功的页面 return "shop/operationfail"; } @RequestMapping(value = "/productbuycheck", method = RequestMethod.GET) private String productBuyCheck() { // 转发至店铺的消费记录的页面 return "shop/productbuycheck"; } @RequestMapping(value = "/awardmanagement", method = RequestMethod.GET) private String awardManagement() { // 奖品管理页路由 return "shop/awardmanagement"; } @RequestMapping(value = "/awardoperation", method = RequestMethod.GET) private String awardEdit() { // 奖品编辑页路由 return "shop/awardoperation"; } @RequestMapping(value = "/usershopcheck", method = RequestMethod.GET) private String userShopCheck() { // 店铺用户积分统计路由 return "shop/usershopcheck"; } @RequestMapping(value = "/awarddelivercheck", method = RequestMethod.GET) private String awardDeliverCheck() { // 店铺用户积分兑换路由 return "shop/awarddelivercheck"; } }
只要你访问localhost:8080/o2o/shopadmin/shoplist 就会返回 shoplist.html这个页面
022018-06-14 -
翔仔
2018-06-13
同学好,出现这个问题,只能说是spring相关的视图解析器没有被成功注册,所以得认真和视频比对,视频是没问题的,
package com.imooc.o2o.config.web; import javax.servlet.ServletException; import org.springframework.beans.BeansException; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.web.servlet.ServletRegistrationBean; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.multipart.commons.CommonsMultipartResolver; 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.InterceptorRegistration; import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; import org.springframework.web.servlet.view.InternalResourceViewResolver; import com.google.code.kaptcha.servlet.KaptchaServlet; import com.imooc.o2o.interceptor.shopadmin.ShopLoginInterceptor; import com.imooc.o2o.interceptor.shopadmin.ShopPermissionInterceptor; import com.imooc.o2o.interceptor.superadmin.SuperAdminLoginInterceptor; /** * 开启Mvc,自动注入spring容器。 WebMvcConfigurerAdapter:配置视图解析器 * 当一个类实现了这个接口(ApplicationContextAware)之后,这个类就可以方便获得ApplicationContext中的所有bean * * @author xiangze * */ @Configuration // 等价于<mvc:annotation-driven/> @EnableWebMvc public class MvcConfiguration extends WebMvcConfigurerAdapter implements ApplicationContextAware { // Spring容器 private ApplicationContext applicationContext; @Override public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { this.applicationContext = applicationContext; } /** * 静态资源配置 * * @param registry */ @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { // registry.addResourceHandler("/resources/**").addResourceLocations("classpath:/resources/"); registry.addResourceHandler("/upload/**").addResourceLocations("file:/Users/baidu/work/image/upload/"); } /** * 定义默认的请求处理器 */ @Override public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) { configurer.enable(); } /** * 创建viewResolver * * @return */ @Bean(name = "viewResolver") public ViewResolver createViewResolver() { InternalResourceViewResolver viewResolver = new InternalResourceViewResolver(); // 设置Spring 容器 viewResolver.setApplicationContext(this.applicationContext); // 取消缓存 viewResolver.setCache(false); // 设置解析的前缀 viewResolver.setPrefix("/WEB-INF/html/"); // 设置试图解析的后缀 viewResolver.setSuffix(".html"); return viewResolver; } /** * 文件上传解析器 * * @return */ @Bean(name = "multipartResolver") public CommonsMultipartResolver createMultipartResolver() { CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(); multipartResolver.setDefaultEncoding("utf-8"); // 1024 * 1024 * 20 = 20M multipartResolver.setMaxUploadSize(20971520); multipartResolver.setMaxInMemorySize(20971520); return multipartResolver; } }
032018-10-10
相似问题