springmvc参数绑定

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。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值