本文共 3393 字,大约阅读时间需要 11 分钟。
一、springMVC基础
1.入门程序:(1)前段控制器的配置:在web-info下面的web.xml文件
springmvc org.springframework.web.servlet.DispatcherServlet contextConfigLocation classpath:springmvc.xml springmvc *.action (2)建立ItemController层,相当于Struts的action,新建一个类, @Controller public class ItemController { @Autowired private ItemsService is; @RequestMapping("/Items.action") //指定映射路径,在浏览器中显示的URL后缀 public ModelAndView itemList() { // 创建页面需要显示的商品数据 List list = is.selectItemsList(); ModelAndView mav =new ModelAndView(); mav.addObject("itemList",list); mav.setViewName("itemList"); return mav; } (3)创建springmvc.xml配置文件 在ItemController类前面添加@Controller注解,并且在xml扫描ItemController注解: ,扫描以com.itheima开头的所有包。 (4)逆向工程生成pojo包,完成controller层的添加代码 ![在这里插入图片描述](https://img-blog.csdn.net/2018101115560120?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1N0cmVhbWxpbmVXcQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70) **2.springmvc配置三大组件** (1)处理器映射器 (2)处理器适配器 (3)注解驱动(可以取代上面的(1)(2)) (4)视图解析器 //解析jsp页面的名字 //解析jsp文件的后缀:xx.jsp 视图解析器的作用:在controller层的类中,最后一句mav.setViewName("itemList");,("itemList")当中表示的是当前操作的jsp页面的名字和后缀。 **3.springmvc和mybatis-spring的整合** 新建一个项目 (1)添加整合用的jar包 (2)整合 ![在这里插入图片描述](https://img-blog.csdn.net/20181011155532918?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1N0cmVhbWxpbmVXcQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70):将mybatis整合完毕的三个文件加上springmvc文件拷贝,
:修改db中的数据库名称, :applicationContext.xml文件当中保留Mapper动态代理开发扫描,将基本包下面的value修改成springmvc.dao, :在sqlMapConfig中修改别名,删除标签 (3)在web.xml中添加Spring的监听器, contextConfigLocation classpath:applicationContext.xml org.springframework.web.context.ContextLoaderListener (4)在web.xml文件中设置读取spring.xml文件的代码 将前端控制器的代码拷贝进web.xml文件当中 (5)注解事务 <tx:annotation-driven transaction-manager=“transactionManager”/> 4.从数据库中查询商品 1.创建ItemService和ItemServiceImpl层,新建方法public ListselectItemsList(){ return im.selectByExampleWithBLOBs(null); } 2.在controller层,加入注解, @Autowired //采用该注解,可以直接调用ItemsService 层, private ItemsService is; 在类中完成代码完成查询: List list = is.selectItemsList(); ModelAndView mav =new ModelAndView(); mav.addObject(“itemList”,list); mav.setViewName(“itemList”); return mav;5.参数绑定的三种类型
1.默认参数绑定 (1)在service中新建一个方法ItemsEdit用来修改商品信息 (2)新建一个根据id修改商品信息的类 public ModelAndView ItemsEdit(HttpServletRequest request,HttpServletResponse response,HttpSession session,Model model ) { //servlet最原始的绑定 String id=request.getParameter(“id”); Items items=is.selectItemsById(Integer.parseInt(id)); ModelAndView mav = new ModelAndView(); mav.addObject(“item”,items); mav.setViewName(“editItem”); return mav; }2.简单类型 方法跟上面的一样,只是类的形参多加了一个Integer, public ModelAndView ItemsEdit(Integer id,HttpServletRequest request,HttpServletResponse response,HttpSession session,Model model ) { //servlet最原始的绑定 Items items=is.selectItemsById(id); ModelAndView mav = new ModelAndView(); mav.addObject("item",items); mav.setViewName("editItem"); return mav; }3.POJO (1)新建方法修改信息,入参用的是一个POJO对象 public void updateItemsById(Items items) { im.updateByPrimaryKeyWithBLOBs(items); }
5.解决POST提交乱码问题
在web.xml文件中添加如下代码: encoding org.springframework.web.filter.CharacterEncodingFilter encoding UTF-8 encoding *.action 6.参数绑定之包装类POJO (1)在POJO包下面创建QueryVo类,里面定义一个items对象,完成get和set方法 private Items items; public Items getItems() { return items; } public void setItems(Items items) { this.items = items; } (2)将controller类中的入参Items items改为QueryVo vo, (3)将jsp网页上面的input里面的name属性前面添加一个items.