一、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层的添加代码  **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)整合 :将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.