天天看點

bboss mvc 控制器方法參數綁定技巧-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