热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

SpringMVCXML非注解配置使用

首先按照 SpringMVC框架原理 需要先配置前端控制器

前端控制器配置 DispatcherServlet

    前端控制器DispatcherServlet
    在web.xml里面配置前端控制器 DispatcherServlet
          
          
              springMVC
              org.springframework.web.servlet.DispatcherServlet
              
              
              
                  ContextConfigLocation
              
                  classpath:SpringMVCBeans.xml
              
           
                
           
           
                springMVC
                
                
                
                *.action
            

补充:

其实当用户配置好前端控制器(DispatcherServlet)后,不配置处理器映射器(HandlerMapping)和处理器适配器(HandlerAdapter),程序照样可以运行。
        这是因为SpringMVC会加载SpringMVC依赖jar包下默认的配置文件DispatcherServlet.properties,该文件内部对于处理器映射器和处理器适配器都有默认配置。

SpringMVC XML 非注解 配置使用

# Default implementation classes for DispatcherServlet's strategy interfaces.
# Used as fallback when no matching beans are found in the DispatcherServlet context.
# Not meant to be customized by application developers.

org.springframework.web.servlet.LocaleResolver=org.springframework.web.servlet.i18n.AcceptHeaderLocaleResolver

org.springframework.web.servlet.ThemeResolver=org.springframework.web.servlet.theme.FixedThemeResolver

org.springframework.web.servlet.HandlerMapping=org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping,\
	org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping

org.springframework.web.servlet.HandlerAdapter=org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter,\
	org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter,\
	org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter

org.springframework.web.servlet.HandlerExceptiOnResolver=org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerExceptionResolver,\
	org.springframework.web.servlet.mvc.annotation.ResponseStatusExceptionResolver,\
	org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver

org.springframework.web.servlet.RequestToViewNameTranslator=org.springframework.web.servlet.view.DefaultRequestToViewNameTranslator

org.springframework.web.servlet.ViewResolver=org.springframework.web.servlet.view.InternalResourceViewResolver

org.springframework.web.servlet.FlashMapManager=org.springframework.web.servlet.support.SessionFlashMapManager

配置处理器映射器HandlerMapping

     (SpringMVC提供了两种选择)(另外SpringMVC允许用户同时配置这两个处理器映射器(两者可以共存))
     1.在SpringMVCBeans.xml配置处理器映射器HandlerMapping (将处理器适配器交由SpringMVC容器管理)
          
          
          
          
          
          




    2.在SpringMVCBeans.xml配置(第二种)处理器映射器SimpleHandlerMapping
          
          
          
          
          
              
                   
                        CelebrityController(这里是bean(controller)的id)
                        CelebrityController(这里是bean(controller)的id)
                   
              
           


处理器适配器配置 HandlerAdapter

    处理器映射器(SpringMVC提供了两种选择)
    1.在SpringMVCBeans.xml配置处理器适配器HandlerAdapter  (将处理器适配器交由SpringMVC容器管理)
        
        
        
        
        
        
        @Override
        public boolean supports(Object handler) {
            return (handler instanceof Controller);
        }
			            
        public interface Controller {
            ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception;
        }
					
    2.第二种处理器适配器,在SpringMVCBeans.xml配置处理器适配器HandlerAdapter	
        
        
        
        
        
        
        @Override
        public boolean supports(Object handler) {
            return (handler instanceof HttpRequestHandler);
        }
        public interface HttpRequestHandler {
            void handleRequest(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException;
        }

编写Handler(Controller)

//第一种 实现Controller接口
@Component
public class CelebrityController implements Controller {

	@Autowired
	private CelebrityService celebrityService;
	
	@Override
	public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {

		Celebrity celebrity = new Celebrity();
		celebrity.setID(1);
		celebrity.setName("Tim");

		ModelAndView modelAndView = new ModelAndView();

		try {
			Map result = celebrityService.saveAndView(celebrity, celebrity.getID());
			Iterator iterator = result.entrySet().iterator();
			while (iterator.hasNext()) {
				Map.Entry entry = (Entry) iterator.next();
				// 指定model
				modelAndView.addObject("celebrity", celebrity);
				// 指定视图
				modelAndView.setViewName("/WEB-INF/jsp/show.jsp");
			}
		}catch(Exception e){
			// 指定model
			modelAndView.addObject("error", e);
			// 指定视图
			modelAndView.setViewName("/WEB-INF/jsp/error.jsp");
		}
		
		return modelAndView;
	}

}




//第二种  实现HttpRequestHandler接口
@Component
public class CelebrityControllerForHttpRequestHandlerAdapter implements HttpRequestHandler {

	@Autowired
	private CelebrityService celebrityService;

	@Override
	public void handleRequest(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		Celebrity celebrity = new Celebrity();
		celebrity.setID(1);
		celebrity.setName("Tim");

		try {
			Map result = celebrityService.saveAndView(celebrity, celebrity.getID());
			Iterator iterator = result.entrySet().iterator();
			while (iterator.hasNext()) {
				Map.Entry entry = (Entry) iterator.next();
				// 指定model
				request.setAttribute("celebrity", celebrity);
				// 指定视图
				request.getRequestDispatcher("/WEB-INF/jsp/show.jsp").forward(request, response);
			}
		} catch (Exception e) {
			// 指定model
			request.setAttribute("error", e);
			// 指定视图
			request.getRequestDispatcher("/WEB-INF/jsp/error.jsp").forward(request, response);
		}

	}

}

视图编写

编写视图 jsp,pdf、、、

 

配置视图解析器ViewResolver

在SpringMVCBeans.xml配置视图解析器ViewResolver (将处理器适配器交由SpringMVC容器管理)
        
        
		
		
		
	

 


推荐阅读
  • 在springmvc框架中,前台ajax调用方法,对图片批量下载,如何弹出提示保存位置选框?Controller方法 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • 使用圣杯布局模式实现网站首页的内容布局
    本文介绍了使用圣杯布局模式实现网站首页的内容布局的方法,包括HTML部分代码和实例。同时还提供了公司新闻、最新产品、关于我们、联系我们等页面的布局示例。商品展示区包括了车里子和农家生态土鸡蛋等产品的价格信息。 ... [详细]
  • 2016 linux发行版排行_灵越7590 安装 linux (manjarognome)
    RT之前做了一次灵越7590黑苹果炒作业的文章,希望能够分享给更多不想折腾的人。kawauso:教你如何给灵越7590黑苹果抄作业​zhuanlan.z ... [详细]
  • 开发笔记:spring boot项目打成war包部署到服务器的步骤与注意事项
    本文介绍了将spring boot项目打成war包并部署到服务器的步骤与注意事项。通过本文的学习,读者可以了解到如何将spring boot项目打包成war包,并成功地部署到服务器上。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 给定一个二维平面上的一些点,通过计算曼哈顿距离,求连接所有点的最小总费用。只有任意两点之间有且仅有一条简单路径时,才认为所有点都已连接。给出了几个示例并给出了对应的输出。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • Java验证码——kaptcha的使用配置及样式
    本文介绍了如何使用kaptcha库来实现Java验证码的配置和样式设置,包括pom.xml的依赖配置和web.xml中servlet的配置。 ... [详细]
  • 本文介绍了在mac环境下使用nginx配置nodejs代理服务器的步骤,包括安装nginx、创建目录和文件、配置代理的域名和日志记录等。 ... [详细]
  • ASP.NET2.0数据教程之十四:使用FormView的模板
    本文介绍了在ASP.NET 2.0中使用FormView控件来实现自定义的显示外观,与GridView和DetailsView不同,FormView使用模板来呈现,可以实现不规则的外观呈现。同时还介绍了TemplateField的用法和FormView与DetailsView的区别。 ... [详细]
author-avatar
dfadsgafg4
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有