web.xml中配置解决post提交乱码问题
<!-- 处理post提交乱码问题 -->
<filter>
<filter-name>encoding</filter-name>
<filter-class>org.springframework.web.filter.CharaterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encoding</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
参数绑定之简单类型
ItemController.java:
//去修改页面,入参id
@RequestMapping(value="/itemEdit.action")
public ModelAndView toEdit(Integer id,HttpServletRequest request,HttpServletResponse response,HttpSession
session,Model model){
//Servlet时代开发
//String id=request.getParameter("id");
//查询一个商品
//Items items=itemService.selectItemsById(Integer.parseInt(id));
Items items=itemService.selectItemsById(id);
ModelAndView mav=new ModelAndView();
mav.addObject("item",items);
mav.setViewName("editItem");
return mav;
}
ItemServiceImpl.java:
public Items selectItemsById(Integer id){
return itemsMapper.selectByPrimaryKey(id);
}
参数绑定之POJO:
ItemController.java:
//提交修改页面 入参为Items对象 提交表单按钮跳转update.
@RequestMapping(value="/updateitem.action")
public ModelAndView updateitem(Items items){
//修改
itemService.updateItemsById(items);
ModelAndView mav=new ModelAndView();
mav.setViewName("success");
return mav;
}
ItemServiceImpl.java:
//修改
public void updateItemsById(Items items){
items.setCreatetime(new Date());
itemsMapper.updateByPrimaryKeyWithBLOBs(items);
}
参数绑定之包装的POJO:
QuerVo.java类:
public class QueryVo {
//商品
private Items items;
ItemController.java:
@RequestMapping(value="/updateitem.action")
public ModelAndView updateitem(QueryVo vo){
//修改
itemService.updateItemsById(vo.getItems());
ModelAndView mav=new ModelAndView();
mav.setViewName("success");
return mav;
}
ItemServiceImpl.java不变
参数绑定之自定义参数绑定:
自定义转换日期参数的类DateConveter.java:
//s:页面传递过来的类型
//t:页面转换后的类型
public class DateConveter implements Converter<String,Date>{
@Override
public Date convert(String source) {
try{
if(null!=source){
DateFormat df=new SimpleDateFormat("yyyy:MM-dd HH_mm-ss");
return df.parse(source);
}
}catch(Exception e){
}
return null;
}
}
在springmvc.xml中配置转换器
<!-- 注解驱动 -->
<mvc:annotation-driven conversion-service="conversionServiceFactoryBean"/>
<!-- 配置Converter转换器 转换工厂(日期,去掉前后空格 -->
<bean id="conversionServiceFactoryBean"
class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
<!-- 配置多个转换器 -->
<property name="converters">
<list>
<!-- 自定义转换器的类(自己写转换过程) -->
<bean class="com.itheima.springmvc.conversion.DateConveter"/>
</list>
</property>
</bean>
springmvc与strust2不同:
1、springmvc的入口是一个servlet即前端控制器,而struts2入口是一个filter过滤器。
2、springmvc是基于方法开发(一个url对应一个方法),请求参数传递到方法的形参,可以设计为单例或多例(建议单例),struts2是基于类开发,传递参数是通过类的属性,只能设计为多例。
3、Struts采用值栈存储请求和响应的数据,通过OGNL存取数据, springmvc通过参数解析器是将request请求内容解析,并给方法形参赋值,将数据和视图封装成ModelAndView对象,最后又将ModelAndView中的模型数据通过request域传输到页面。Jsp视图解析器默认使用jstl。