bboss mvcコントローラメソッドパラメータバインドテクニック-mapタイプパラメータバインドの紹介


本文はbboss mvcコントローラ方法パラメータバインドテクニック-mapタイプパラメータバインドの使用方法を紹介し、本題に入る.
1、概要
Mapタイプのパラメータバインドには、次の2つの方法があります.
方式1 Map方式でRequestオブジェクトのパラメータを直接Mapオブジェクトにダンプする
方式2 Map方式では、複数のレコードをBeanタイプ値オブジェクトに変換し、@MapKeyで指定したレコードフィールドの値をMapのkey値、Beanオブジェクトをvalueとして、コントローラメソッドパラメータとして1つのMapオブジェクトを形成する.
この2つのMapパラメータのバインド方法について説明するほか、jspでmapラベル/mapkeyラベルと組み合わせてmapタイプのデータを表示する方法についても説明します.
これらの機能について直接説明します
2、機能の詳細
2.1、方式一Map方式
まずフォームの書き方を見て、2つのパラメータnameとsex:

<form action="sayHelloStringMap.page" method="post">
			<table cellspacing="0" >
				<tbody>
					<tr><td>
							 :
						<input name="name" type="text">
						</td>						<td>
							 :
						<input name="sex" type="text">
						</td>
					</tr>				</tbody>
			</table>			</form>

コントロールメソッドの書き方、Mapparamsはrequestのすべてのパラメータのダンプです.

public String sayHelloStringMap(Map params,
			ModelMap model)
	{
// params jsp , map 
		model.addAttribute("serverHelloMapBean", params);
		return "path:sayHello";
	}

jspでmapタグを使用してparamsのkeyとvalueを表示する方法:

<table>
	    <h3>map<String,String> </h3>
		<pg:map requestKey="mapstrings">			<tr class="cms_data_tr">
				<td>
					mapkey:<pg:mapkey/>
				</td> 
				<td>
					value:<pg:cell/>
				</td> 
				
			</tr>
		</pg:map>	</table>

2.2、方式二Map方式
まずフォームの書き方を見て、フォームの中に複数のnameとsexパラメータを配置して、複数の記録を形成するBeanオブジェクトをシミュレートします.私たちのBeanオブジェクトExampleBeanの構造も非常に簡単で、nameとsexの2つの属性が含まれています.
フォーム・コード

<form action="sayHelloBeanMap.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 sayHelloBeanMap(@MapKey("name") Map<String, ExampleBean> mapBeans, ModelMap model)
	{

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

注記@MapKey("name")で宣言したMapパラメータのkeyはnameフィールドの値をkeyとし、Mapの汎用情報で各レコードがバインドされるBeanオブジェクトのタイプを指定します.ここでExampleBeanです.制御方法の論理は非常に簡単で、バインドされたパラメータmapBeansをjspページに直接渡します.
jspでmapタグを使用してmapBeansのkeyとExampleBeanを表示する方法:

<table>
	    <tr>			<td>
								<pg:map requestKey="serverHelloMapBean" >			<ul><li> mapkey: <pg:mapkey/></li>			 <li>name :<pg:cell colName="name"/></li>		 <li>sex :<pg:cell colName="sex"/></li>		</ul>
							</pg:map>
						</td>					</tr>	</table>

さらに、mapラベルの定義ファイルを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