SpringMVC(高级参数、List类型绑定、@RequestMapping、限定请求方法、以及Controller方法返回值)

本文详细介绍了SpringMVC框架中高级参数绑定的使用方法,包括数组和List类型的参数绑定,自定义日期转换器的配置,以及不同类型的Controller方法返回值示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

高级参数绑定

1、数组类型的参数绑定

基于批量删除操作完成参数传递

@RequestMapping("queryItem")
	public String queryItem(QueryVo vo, Integer[] ids) {
		System.out.println(vo);
		//输出传入的数组
		if (ids != null && ids.length > 0) {
			for (Integer id : ids) {
				System.out.println("传入的商品列表分别为:" + id);
			}
		}
		return "itemList";
2、List类型的绑定

基于批量修改操作完成参数传递(控制器修改)

@RequestMapping("queryItem")
public String queryItem(QueryVo vo,Integer[] ids){
	System.out.println(vo);
	//输出传入的数组
	if(ids != null && ids.length > 0){
		for(Integer id : ids){
			System.out.println("传入的参数为"+id);
		}
	}
}

(POJO修改)

public class QueryVo{
	private Item item;

	//演示List参数传递
	private List<Item> items;
	
	public List<Item> getItems(){
		return items
	}
}

编写一个DateConvert类

public class DateConvert implements Converter<String,Date>{
	
	@Override
	public Date convert(String source){
		Date result = null;
		try{
			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
			result = sdf.parse(source);
		}catch(ParseException e){
			e.printStackTrace();
		}
		return result;
	}
}

在springmvc.xml配置日期转换器


<!-- 使用自定义转换器 -->
<mvc:annotation-driven conversion-service="MyConvert"

<!-- 定义转换器 -->
<bean id="MyConvert" class="org.springframework.format.support.FormattingConversionServiceFactory" >
	<property name="converters">
		<set>
			<bean class="com.java.springmvc.util.DateConvert"/>
		</set>
	</property>
</bean>

@RequestMapping注解的使用

分目录管理(随便找个例子)
@RequestMapping("Item")
public class Controller{
	@RequestMapping("queryItem")
	public String queryItem(QueryVo vo,Integer[] ids){
	System.out.println(vo);
	//输出传入的数组
	if(ids != null && ids.length > 0){
		for(Integer id : ids){
			System.out.println("传入的参数为"+id);
		}
	}
}
}

这个时候在浏览器输入地址就不是localhost:8080/queryItem了,还要在queryItem前面加个Item,如localhost:8080/Item/queryItem

限定请求方法
@RequestMapping(value="queryItem",method=(RequestMethod.POST,method=(RequestMethod.GET))

Controller方法返回值

1、返回 ModelAndView
@RequestMapping("itemEdit")
	public ModelAndView itemEdit(@RequestParam(value="id",required=true,defaultValue="1")Integer ids){
		ModelAndView mav = new ModelAndView();
		
		//查询商品信息
		Item item = itemServices.getItemById(ids);
		//设置商品数据返回页面
		mav.addObject("item", item);
		//设置视图名称
		mav.setViewName("itemEdit");
		return mav;
	}
2、返回void( request 与 response )

request

	@RequestMapping("queryVoid")
	public void queryVoid(HttpServletRequest request,HttpServletResponse response) throws Exception{
		//request响应客户请求
		request.setAttribute("msg","这个是request响应的消息");
		request.getRequestDispatcher("/WEB-INF/jsp/demo.jsp").forward(request,response);
	}

response

@RequestMapping("queryVoid")
	public void queryVoid(HttpServletRequest request,HttpServletResponse response) throws Exception{

	    //response响应用户请求
		response.sendRedirect("/hello.action");
		
		//设施响应的字符编码
		response.setContentType("text/html;charset=utf-8");
		response.setCharacterEncoding("utf-8");
		PrintWriter printWriter = response.getWriter();
		printWriter.println("这是response的打印消息");
	}
3、返回String( 返回视图名字,参考第一天内容 )

redirect与forward

	@RequestMapping("demo")
	public String name(String msg,Model model) throws Exception{
		model.addAttribute("msg", msg);
		return "redirect:hello.action";
		//return "forword:hello.action";//相当于request的请求转发和response的请求重定向
	}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值