springmvc01

1. springmvc_hello入门

1.1 导包
Snip20180912_18.png
1.2 配置web.xml




    
        index.html
        index.htm
        index.jsp
        default.html
        default.htm
        default.jsp
    


    
    
        springmvc
        org.springframework.web.servlet.DispatcherServlet
        
        
            contextConfigLocation
            classpath:springmvc.xml
        
    

    
        springmvc
        
        *.action
    

1.3 配置springmvc.xml



        
        
        
        
        
        

        

        
        

    
    
        
        
    
   
1.4书写HelloController
@Controller
public class HelloController{

    
    //入门程序 第一   包类 + 类包 + 方法名
    @RequestMapping(value = "/hello/helloSpringmvc.action")
    public ModelAndView hello(){
        
        ModelAndView mav = new ModelAndView();
        
        mav.setViewName("hello");
        
        return mav;
    }
    
}

2. 整合spring、springmvc,mybatis框架

2.1. 结构
Snip20180912_19.png
2.2 applicationContext.xml




    

    
    
        
        
        
        
        
        
    

    
    
        
        
        
    



    
    
        
    

    
    


    
    
        
        
    


2.3 springmvc.xml



        
        
    
    
    


    
    


    
    
        
        
    
        
   
2.4 sqlMapConfig.xml




    
    
        
        
    



2.5 web.xml



    
        index.jsp
    

    
    
        contextConfigLocation
        classpath:applicationContext*.xml
    

    
    
        org.springframework.web.context.ContextLoaderListener
    

    
    
        encoding
        org.springframework.web.filter.CharacterEncodingFilter
        
            encoding
            UTF-8
        
    

    
        encoding
        *.action
    



    
    
    
        springmvc
        org.springframework.web.servlet.DispatcherServlet
        
        
            contextConfigLocation
            classpath:springmvc.xml
        
    

    
        springmvc
        
        *.action
    

2.6 自此整合结束,测试

ItemController


/**
 * 商品管理
 * 
 * @author lx
 *
 */
@Controller
public class ItemController {

    @Autowired
    ItemService itemService;
    
    //入门程序 第一   包类 + 类包 + 方法名
    @RequestMapping(value = "/item/itemlist.action")
    public ModelAndView itemList(){

        // 创建页面需要显示的商品数据
        List list = itemService.selectItemsList();

        ModelAndView mav = new ModelAndView();
        //数据
        mav.addObject("itemList", list);
        mav.setViewName("itemList");
        return mav;
    }
    
}

public interface ItemService {

    //查询商品列表
    public List selectItemsList();
}


@Service
public class ItemServiceImpl implements ItemService {

    @Autowired
    ItemsMapper itemsMapper;


    @Override
    public List selectItemsList() {
        return itemsMapper.selectByExampleWithBLOBs(null);
    }
}

3. 参数绑定之默认参数( HttpServletRequest request, HttpServletResponse response,HttpSession session,)绑定和简单类型(id)

提交的id和方法中的形参id一样,才可以成功赋值

public interface ItemService {
    // 根据id查询item
    public Items selectItemsById(Integer id);
}
@Service
public class ItemServiceImpl implements ItemService {
    @Autowired
    ItemsMapper itemsMapper;

    @Override
    public Items selectItemsById(Integer id) {
        return itemsMapper.selectByPrimaryKey(id);
    }
}
@Controller
public class ItemController {
    // 跳转改页面 入参 id
    @RequestMapping(value = "/itemEdit.action")
    public ModelAndView toEdit(Integer id,
                               HttpServletRequest request,
                               HttpServletResponse response,
                               HttpSession session,
                               Model model) {

        Items items = itemService.selectItemsById(id);

        ModelAndView mav = new ModelAndView();

        mav.addObject("item", items);
        mav.setViewName("editItem");
        return mav;
    }
}

4. 参数绑定之POJO

//提交修改页面 入参  为 Items对象
    @RequestMapping(value = "/updateitem.action")

//  public ModelAndView updateitem(Items items){
    public ModelAndView updateitem(QueryVo vo){

        // 修改
        itemService.updateItemsById(vo.getItems());

        ModelAndView mav = new ModelAndView();
        mav.setViewName("success");
        return mav;

    }

5. 解决POST乱码

web.xml


    
        encoding
        org.springframework.web.filter.CharacterEncodingFilter
        
            encoding
            UTF-8
        
    

    
        encoding
        *.action
    

6. 自定义格式参数绑定

在springmvc.xml中配置格式转换器


        
        
        
        
            
            
                
                    
                
            
        

7. springmvc和struts2的区别

1、 springmvc的入口是一个servlet即前端控制器,而struts2入口是一个filter过滤器。
2、 springmvc是基于方法开发(一个url对应一个方法),请求参数传递到方法的形参,可以设计为单例或多例(建议单例),struts2是基于类开发,传递参数是通过类的属性,只能设计为多例。
3、 Struts采用值栈存储请求和响应的数据,通过OGNL存取数据, springmvc通过参数解析器是将request请求内容解析,并给方法形参赋值,将数据和视图封装成ModelAndView对象,最后又将ModelAndView中的模型数据通过request域传输到页面。Jsp视图解析器默认使用jstl。

你可能感兴趣的:(springmvc01)