bboss mvc 控制器方法参数绑定技巧-List类型参数绑定介绍

简介: 本文介绍bboss mvc 控制器方法参数绑定技巧-List类型参数绑定的使用方法,切入正题。 1、概述 List类型参数绑定有三种方式: 方式一 List方式,以@RequestParam(name="ids")注解标注的参数ids的值(可以是单个值,也可以是多个值)转换为List对象,然后将这个List作为控制器方法参数。
本文介绍bboss mvc 控制器方法参数绑定技巧-List类型参数绑定的使用方法,切入正题。

1、概述
List类型参数绑定有三种方式:
方式一 List方式,以@RequestParam(name="ids")注解标注的参数ids的值(可以是单个值,也可以是多个值)转换为List对象,然后将这个List<基础类型>作为控制器方法参数。这种方式适用于控制器参数和bean中的属性
方式二 List<Bean>方式,这种方式用来将多条记录转换为List<Bean>对象集合,其中的bean对应一条记录,然后将这个List<Bean>对象作为控制器方法参数。
方式三 List 方式无需任何注解,这种方式直接将List参数名称或者属性名称对于的参数数组转换为List对象,元素类型为字符串类型,这种方式适用于控制器参数和bean中的属性

方式四 List<基础数据类型> 方式无需任何注解,这种方式直接将List参数名称或者属性名称对于的参数数组转换为List对象,元素类型为泛型对应的类型,这种方式适用于控制器参数和bean中的属性

除了介绍这两种List参数绑定方式外,我们还会介绍如何在jsp中结合list标签/cell标签来展示list集合的数据信息。

下面直接介绍这些功能

2、功能详解

2.1、方式一 List方式
首先看表单的写法,两个参数name和sex:
<form action="sayHelloStringList.page" method="post">
			<table cellspacing="0" >
				<tbody>
					<tr><td>
							请输入您的名字1:
						<input name="name" type="text">
						</td>						<td>
							请输入您的性别1:
						<input name="sex" type="text">
						</td>
					</tr>

<tr><td>
							请输入您的名字2:
						<input name="name" type="text">
						</td>						<td>
							请输入您的性别2:
						<input name="sex" type="text">
						</td>
					</tr>				</tbody>
			</table>			</form>



控制方法的写法,names和sexs即为request中的分别为参数name和sex对应的值(多个值)的转换而形成的list对象:
public String sayHelloStringList(@RequestParam(name="name") List names,@RequestParam(name="sex") List sexs,
			ModelMap model)
	{
//我们直接把两个List传递到jsp页面上,用list标签进行展示
		model.addAttribute("names", names);
                  model.addAttribute("sexs", sexs);

		return "path:sayHello";
	}


jsp中用list标签进行展示names和sexs中的值方法:
<table>
	    <h3>names字符串信息迭代功能</h3>
		<pg:list requestKey="names">			<tr >		 
				<td>
					name:<pg:cell/>
				</td> 			</tr>
		</pg:list>	</table>
<table>
	    <h3>sexs字符串信息迭代功能</h3>
		<pg:list requestKey="sexs">			<tr >		 
				<td>
					sex:<pg:cell/>
				</td> 			</tr>
		</pg:list>	</table>



2.2、方式二 List<Bean>方式
首先看表单的写法,我们在表单里面放置多个name和sex参数,以便模拟形成多个记录的Bean对象,我们的Bean对象ExampleBean的结构也非常简单,就包含name和sex两个属性:
表单代码
<form action="sayHelloBeanList.page" method="post">
			<table cellspacing="0" >
				<tbody>						<tr>							<td>
							请输入您的名字:
						<input name="name" type="text">
						</td>
						<td>
							请输入您的性别:
						<input name="sex" type="text">
						</td>
					</tr>
					
					<tr>
						<td>
							请输入您的名字:
						<input name="name" type="text">
						</td>
						<td>
							请输入您的性别:
						<input name="sex" type="text">
						</td>
					</tr>					<tr>						<td>
							请输入您的名字:
						<input name="name" type="text">
						</td>
						
						<td>
							请输入您的性别:
						<input name="sex" type="text">
						</td>
					</tr>
					
					<tr><td>
							请输入您的名字:
						<input name="name" type="text">
						</td>
						<td>
							请输入您的性别:
						<input name="sex" type="text">
						</td>
					</tr>
<tr>
						<td>
							请输入您的名字:
						<input name="name" type="text">
						</td>
						<td>
							请输入您的性别:
						<input name="sex" type="text">
						</td>
					</tr>
										<tr>
						<td><input type="submit" name="确定" value="确定"></td>						</tr>
				</tbody>
			</table>			</form>


ExampleBean代码:
public class ExampleBean
{
	private String name = null;
	private String sex = null;

	
	public String getName()
	{
	
		return name;
	}

	
	public void setName(String name)
	{
	
		this.name = name;
	}


	
	public String getSex()
	{
	
		return sex;
	}


	
	public void setSex(String sex)
	{
	
		this.sex = sex;
	}

}

控制方法的写法:
public String sayHelloBeanList(List<ExampleBean> listBeans, ModelMap model)
	{

		model.addAttribute("listBeans", listBeans);
		return "path:sayHello";
	}


通过List<ExampleBean> 中的泛型信息指定每条记录将被绑定的Bean对象的类型,这里是ExampleBean,控制方法的逻辑非常简单,直接将绑定好的参数listBeans交给jsp页面展示。

jsp中用list标签进行展示listBeans中ExampleBean信息的方法:
<table>
	    <tr>			<td>
								<pg:list requestKey="listBeans" >			<ul</li>			 <li>name属性值:<pg:cell colName="name"/></li>		 <li>sex属性值:<pg:cell colName="sex"/></li>		</ul>
							</pg:list>
						</td>					</tr>	</table>


篇幅关系,其他几种方式不再描述。

补充说明,list标签和cell的定义文件必须导入到jsp的头部:
<%@ taglib uri="/WEB-INF/pager-taglib.tld" prefix="pg"%>  

标签库的使用请参考以下文章:
http://yin-bp.iteye.com/blog/1136924
http://yin-bp.iteye.com/blog/1137674
bboss mvc数据绑定更全面的介绍资料:
http://yin-bp.iteye.com/blog/1070614
bboss mvc 控制器方法参数绑定技巧-Map类型参数绑定介绍
http://yin-bp.iteye.com/blog/1170087
bbossgroups 开发系列文章之-最佳实践
http://bbossgroups.group.iteye.com/group/wiki/3092-mvc-bboss-config
目录
相关文章
|
1月前
|
JSON 前端开发 Java
Spring MVC——获取参数和响应
本文介绍了如何在Spring框架中通过不同的注解和方法获取URL参数、上传文件、处理cookie和session、以及响应不同类型的数据。具体内容包括使用`@PathVariable`获取URL中的参数,使用`MultipartFile`上传文件,通过`HttpServletRequest`和`@CookieValue`获取cookie,通过`HttpSession`和`@SessionAttribute`获取session,以及如何返回静态页面、HTML代码片段、JSON数据,并设置HTTP状态码和响应头。
51 1
Spring MVC——获取参数和响应
|
27天前
|
前端开发 Java Spring
Spring MVC源码分析之DispatcherServlet#getHandlerAdapter方法
`DispatcherServlet`的 `getHandlerAdapter`方法是Spring MVC处理请求的核心部分之一。它通过遍历预定义的 `HandlerAdapter`列表,找到适用于当前处理器的适配器,并调用适配器执行具体的处理逻辑。理解这个方法有助于深入了解Spring MVC的工作机制和扩展点。
31 1
|
28天前
|
前端开发 Java Spring
Spring MVC源码分析之DispatcherServlet#getHandlerAdapter方法
`DispatcherServlet`的 `getHandlerAdapter`方法是Spring MVC处理请求的核心部分之一。它通过遍历预定义的 `HandlerAdapter`列表,找到适用于当前处理器的适配器,并调用适配器执行具体的处理逻辑。理解这个方法有助于深入了解Spring MVC的工作机制和扩展点。
27 1
|
24天前
|
前端开发 Java Spring
Spring MVC源码分析之DispatcherServlet#getHandlerAdapter方法
`DispatcherServlet`的 `getHandlerAdapter`方法是Spring MVC处理请求的核心部分之一。它通过遍历预定义的 `HandlerAdapter`列表,找到适用于当前处理器的适配器,并调用适配器执行具体的处理逻辑。理解这个方法有助于深入了解Spring MVC的工作机制和扩展点。
22 0
|
3月前
|
XML Java API
List与String相互转化方法汇总
本文汇总了List与String相互转化的多种方法,包括使用`String.join()`、`StringBuilder`、Java 8的Stream API、Apache Commons Lang3的`StringUtils.join()`以及Guava的`Joiner.on()`方法实现List转String;同时介绍了使用`split()`方法、正则表达式、Apache Commons Lang3的`StringUtils.split()`及Guava的`Splitter.on()`方法实现String转List。
111 1
List与String相互转化方法汇总
|
3月前
|
Java
用JAVA架建List集合为树形结构的代码方法
这段代码定义了一个表示树形结构的 `Node` 类和一个用于构建树形结构的 `TreeController`。`Node` 类包含基本属性如 `id`、`pid`、`name` 和 `type`,以及子节点列表 `children`。`TreeController` 包含初始化节点列表并将其转换为树形结构的方法。通过过滤和分组操作实现树形结构的构建。详情可见:[代码示例链接1](http://www.zidongmutanji.com/zsjx/43551.html),[代码效果参考链接2](https://www.257342.com/sitemap/post.html)。
44 5
|
3月前
|
XML 前端开发 Java
Spring MVC接收param参数(直接接收、注解接收、集合接收、实体接收)
Spring MVC提供了灵活多样的参数接收方式,可以满足各种不同场景下的需求。了解并熟练运用这些基本的参数接收技巧,可以使得Web应用的开发更加方便、高效。同时,也是提高代码的可读性和维护性的关键所在。在实际开发过程中,根据具体需求选择最合适的参数接收方式,能够有效提升开发效率和应用性能。
122 3
|
3月前
|
XML 前端开发 Java
Spring MVC接收param参数(直接接收、注解接收、集合接收、实体接收)
Spring MVC提供了灵活多样的参数接收方式,可以满足各种不同场景下的需求。了解并熟练运用这些基本的参数接收技巧,可以使得Web应用的开发更加方便、高效。同时,也是提高代码的可读性和维护性的关键所在。在实际开发过程中,根据具体需求选择最合适的参数接收方式,能够有效提升开发效率和应用性能。
199 2
|
4月前
|
前端开发 Java 项目管理
List.of 问题之使用List.of方法为什么会引发前端解析失败的问题,如何解决
List.of 问题之使用List.of方法为什么会引发前端解析失败的问题,如何解决
|
4月前
|
XML Java API
List与String相互转化的方法有哪些
摘要:本文概述了Java中List转换为String及反之的多种策略。使用`String.join()`可简洁地连接List元素;`StringBuilder`提供灵活控制;Java 8 Stream API收集器简化操作;Apache Commons Lang3的`StringUtils.join()`和Guava的`Joiner.on()`支持外部库的高效转换。
下一篇
无影云桌面