-
用Spring MVC开发一个课程管理模块
配置文件:
【配置1】——web应用的部署描述文件web.xml,当前的web.xml是由maven自动生成的,它用到web-app_2_3的版本,这个标准之下,JSP页面会默认将EL表达式语言关闭,所以要将它替换掉,使用web_app_2_4以上版本,如下图,这样Web应用就可以使用EL表达式。
【配置2】——web.xml中加入Spring和SpringMVC的声明,以及所需Spring配置文件和SpirngMVC所需路径,如下图,所以现在有两个上下文环境一个是SpringMVC的上下文环境,一个是Spring的上下文环境(提供了所有应用公共使用的一些组件、一些服务,有service层、dao层等等,这些服务是被整个应用所共享的,没有局限在某一个DispatcherServlet上下文环境之中),另外一个则是与DispatcherServlet上下文相关的WebApplicationContext上下文,该上下文包含Controllers、HandlerMapping、ViewResolver,这里通常指的是配置文件,可以有多个DispatcherServlet,多个DispatcherServlet可以使用公共的WebApplicationContext,可以使用不同的DispathcerServlet进行不同的分发,更好进行不同类型的请求。
【配置3】——DispatcherServlet配置文件的配置。
【配置4】——Spring配置文件的配置。
查看全部 -
Controller——传统方式
Controller中使用HttpServletRequest对象(方法中使用HttpServletRequest对象)
【步骤1】pom文件中引入Servlet的API
【步骤2】通过request把逻辑数据放入域对象request对象中
课程总结:
1、通过@Controller的annotation声明了一个Controller
2、通过@RequestMapping的annotation映射了URL和方法,通常出现在类级别和方法级别,二者共同组合完成了对一个URL映射请求的拦截。
3、通过URL template结合使用(@Requestparam and @PathVariable)两个标记可以将URL路径之中的参数绑定到方法参数中
4、可以通过使用HttpServletRequest或者HttpSession之类的对象来获取想要的结果。
查看全部 -
Binding:将请求中的字段按照名字匹配的原则填入对象模型(模型对象和页面数据的绑定)。
案例:课程添加及保存的维护界面。
描述:创建增加课程的方法,并跳转课程增加的界面,设定访问该方法的路径为admin,请求限定为request,限制有一个请求参数add(意思是浏览器访问时候路径后+?add),注意:edit.jsp中标签的name属性应当和模型对象中的Course属性名称一致,
随后Controller中添加增加课程的方法,该方法通过在方法里设置Course对象来获取前端form表单提交的数据,这里通过返回"redirect:view2/"+course.getCourseId();就可以重定向到viewCourse2的方法并进行添加课程的展示,添加日志信息确定是否拦截到了表单的数据信息,并把它绑定到了模型对象中log.debug("Info of Course:");log.debug(ReflectionToStringBuilder.toString(course)),ReflectionToStringBuilder是apache.lang包中Builder的一个类,进行日志输出进行程序的调试很常见,将课程的内容以键值对的形式,输出在日志当中,这样就可以查看是否映射到了Course对象中。
映射多目录结构JSP:相对路径即可。
@ModelAttribute:放在方法参数的注解,也可以完成数据绑定的功能,当@ModelAttribute放在方法参数上时,和使用这个标签没有区别。当将@ModelAttribute放在方法上标识的时候,表示执行这个controller类中的@RequestMapping标注的方法前都要先执行标有@ModelAttribute的方法。
查看全部 -
SpringMVC中启动对JSON的支持:
步骤1:SpringMVC的上下文环境mvc-dispatcher-serlver.xml中配置ContentNegotiatingViewResolver,具体参数不做详细讲解,只需要知道它可以将SpringMVC相同的数据呈现不同的数据表现形式,由于这里主要讲解JSON数据格式,这里使用MappingJackson2JsonView工具类库,将模型数据转化称JSON格式。如下图配置,其中JsonView类的作用是将模型数据转化成JSON格式。
步骤2:Maven的pom文件引入依赖,使用jackson提供工程的javaBean的JSON的转换。
案例:Controller中编写支持JSON的方法,其它同之前课程一样,只不过方法的返回参数Course前添加了@ResponseBody注解(并不是唯一的方式,它是简洁的方式,不需要其他配置),返回的数据将以JSON格式进行呈现,可以把数据复制到具有JSON功能的文本编辑器,并使用JSON的视图进行展示。数据转换为JSON的格式2:方法返回值前使用@ResponseEntity注解(该注解是SpringMVC抽象的实体,它用泛型包裹了实体类),只需要返回这个类的实例。如下图(了解)
查看全部 -
网页503,可能是 mvc.xml中 包名未填写正确,按视频添加HelloMVCController,正确的包名如下
<context:component-scan base-package="com.imooc.mvcdemo.controller" use-default-filters="false">
查看全部 -
POM:Project Object Model
查看全部 -
Spring MVC的模块划分
查看全部 -
Spring MVC基本概念(动图)
去掉黑色字,斜体,其余都是配置,真正需要写的只有Controller
查看全部 -
View:呈现页面。
查看全部 -
ViewResolver:视图解析器,根据配置找出需要的视图对象。
查看全部 -
ModelAndView
查看全部 -
HandlerExecutionChain
查看全部 -
HandlerMapping
查看全部 -
HandlerInterceptor:拦截器的意思,是一个接口,有三个方法分别是preHandle、postHandle、afrerCompletion。可在真正调用Controller之前、之后、以及最终在Model发送到页面View完全呈现去做很多事情。
查看全部 -
HandlerAdapter:是Controller的一种表现形式。
查看全部
举报