Springmvc的jar包下载:https://pan.baidu.com/s/1Uu5R96z4LwwtydGq4B60Xg 密码:8c3n
package com.xxx.springmvc.controller;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.HttpRequestHandler;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;
import com.xxx.springmvc.pojo.Items;
import com.xxx.springmvc.pojo.QueryVo;
import com.xxx.springmvc.service.ItemService;
//商品管理
@Controller //Springmvc的Controller是单例的,Struts2的Action是多例的。 接收请求参数不能用成员变量(属性驱动)接收,而是通过方法的形参获取。
public class ItemController {
@Autowired
private ItemService itemService;
//接收参数id;根据id修改商品
@RequestMapping(value = "/itemEdit.action") // .action可以省略(省略后不利于后期维护)。
public ModelAndView toEdit(HttpServletRequest request,HttpServletResponse response
,HttpSession session,Model model){
//原生Servlet时代开发
String id = request.getParameter("id");
//根据id查询商品
Items items = itemService.selectItemsById(Integer.parseInt(id));
ModelAndView mav = new ModelAndView();
//相当于往Request域中添加数据
mav.addObject("item", items); //jsp页面中可以通过el表达式${item}获取。
mav.setViewName("editItem"); //指定view视图(jsp页面)
return mav;
}
}
package com.xxx.springmvc.controller;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.HttpRequestHandler;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;
import com.xxx.springmvc.pojo.Items;
import com.xxx.springmvc.pojo.QueryVo;
import com.xxx.springmvc.service.ItemService;
//商品管理
@Controller
public class ItemController {
@Autowired
private ItemService itemService;
//接收参数id;根据id修改商品
@RequestMapping(value = "/itemEdit.action")
//public ModelAndView toEdit(@RequestParam(value = "id",required = false,defaultValue = "1") Integer myId,
//@RequestParam() 表示请求参数与对应接收的方法形参不同名时,可以通过@RequestParam配置形参对应接收哪个请求参数名,以及设置默认值等。
public ModelAndView toEdit(Integer id,
HttpServletRequest request,HttpServletResponse response,HttpSession session,Model model){
//直接通过方法的形参id获取同名的请求参数。 形参类型建议使用基本类型对应的包装类型,因为可能会为null。
//处理器适配器会默认识别并进行赋值。
//根据id查询商品
Items items = itemService.selectItemsById(id);
ModelAndView mav = new ModelAndView();
mav.addObject("item", items);
mav.setViewName("editItem");
return mav;
}
}
package com.xxx.springmvc.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import com.xxx.springmvc.pojo.Items;
import com.xxx.springmvc.pojo.QueryVo;
import com.xxx.springmvc.service.ItemService;
//商品管理
@Controller
public class ItemController {
@Autowired
private ItemService itemService;
//提交修改商品。 接收参数并封装成Items对象
@RequestMapping(value = "/updateitem.action")
public ModelAndView updateitem(Items items){ //形参可以是数组类型,来接收数组参数;但不能接收List类型。List类型必须通过POJO类或者包装类的属性来接收。
//通过形参items自动接收请求参数并封装成items对象。 (前端表单元素的name属性必须与Items实体类的属性保持一致,才能自动封装)
//如果对象属性(hobbyList)是List类型,前端表单元素的name可以设为hobbyList[0]来传参
//与方法形参的类型Items有关,与形参名items无关。
//修改
itemService.updateItemsById(items);
ModelAndView mav = new ModelAndView();
mav.setViewName("success");
return mav;
}
}
package com.xxx.springmvc.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import com.xxx.springmvc.pojo.QueryVo;
import com.xxx.springmvc.service.ItemService;
//商品管理
@Controller
public class ItemController {
@Autowired
private ItemService itemService;
//提交修改商品。 (接收参数封装到POJO包装类型中)
@RequestMapping(value = "/updateitem.action")
public ModelAndView updateitem(QueryVo vo){
//前端表单元素的name属性值必须是items.xxx,接收参数时才能封装到QueryVo包装类的成员变量items中来。
//修改
itemService.updateItemsById(vo.getItems());
ModelAndView mav = new ModelAndView();
mav.setViewName("success");
return mav;
}
}
package com.xxx.springmvc.pojo;
public class QueryVo {
//商品 POJO实体对象
private Items items; //前端表单元素的name属性值必须是items.xxx,接收参数时才能封装到成员变量items中来。
public Items getItems() {
return items;
}
public void setItems(Items items) {
this.items = items;
}
}
springmvc-mybatis
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
index.html
index.htm
index.jsp
default.html
default.htm
default.jsp