リストをコミット

3394 ワード

リスト内の要素タイプをシステムに知らせるためには、システムのタイプ変換器を機能させるために、2つの方法があります.
1、汎用型を使用して集合内の要素のタイプを制限する.eg:Actionクラスコードにおけるuser属性の汎用定義はprivate Listuser;
2、Struts 2を使用するプロファイル:ローカルタイプ変換のプロファイルを使用して、集合要素のデータ型を指定します.
ローカルタイプ変換ファイルでコレクション要素のタイプを指定するには、ローカルタイプ変換ファイルに次のkey-valueペアを追加する必要があります.
Element_xxx=複合タイプ(説明:key-valueペアのElementは固定、xxxはActionの集合属性名、複合タイプは集合要素タイプの全限定数クラス名[完全なパケット接頭辞を追加すべき])
eg:Element_user = lee.User   //Actionクラスのuserコレクション属性を指定する要素はlee.Userインスタンスです
次に、ローカルタイプ変換器の登録について説明します.タイプ変換器を登録するには、以下の形式のファイルを提供するだけです.
ActionName-conversion.properties:ActionNameは変換器が必要な最初のActionのクラス名で、後の-conversion.properties文字列は固定部分です.
eg:LoginAction.javaクラスの場合、提供すべきタイプ変換器登録ファイルのファイル名は、key-valueペアからなるLoginAction-conversion.propertiesです.ファイル内容:propertyName=タイプ変換器クラス
LoginAction-conversion.propertiesファイルは、LoginAction.javaファイルと同じパスの下に置くべきです(LoginAction.javaのパッケージがleeの場合、そのファイルもパッケージlee内に置くべきです).
こんなにたくさんの文字の说明はまだ1つの実例がはっきり言っていないで、人に分かりやすいようにして、へへ、今すぐ実例を见てみましょう!!
FeeItemAction.java
package lee;
public class FeeItemAction extends ActionSupport implements ServletRequestAware
{
    private HttpServletRequest request;
    private List<StkMasModel> modelList;//  list
    
    public String execute() throws Exception
    {
        FeeItem feeItem = new FeeItemImp();
        if(modelList != null && modelList.size() > 0)
       {
	for(StkMasModel model:modelList)
	{
	       feeItem = new FeeItemImp();
	       feeItem.setStkPkNo(model.getStk_pk());
	       feeItem.setCatName(model.getCatName());
	       feeItem.setCatPkNo(model.getCatPkNo());
	       feeItem.setStkName(model.getName());
	       itemService.saveOrUpdateFeeItem(feeItem);		
	}
				
       }
       else
      {
	log.warn("*********The size of model less than zero!********");
      }     }

                public void setServletRequest(HttpServletRequest request)
	{
		this.request = request;
	}
	public List<StkMasModel> getModelList()
	{
		return modelList;
	}
	public void setModelList(List<StkMasModel> modelList)
	{
		this.modelList = modelList;
	}
}

 FeeItemAction-conversion.properties
Element_modelList=lee.StkMasModel

 
StkMasModel.java
package lee;
public class StkMasModel
{
	private Long stk_pk;
	private String catName; 
	private Long catPkNo;	
	private String name; 
         public String getCatName()
	{
		return catName;
	}
	public void setCatName(String catName)
	{
		this.catName = catName;
	}
     //      get  set...
}

 list.jsp
<form action="saveFeeItems.html" id="saveFeeItemsForm" method="post">
<s:iterator status="st" value="#request.reList" id="stkList">
<input type="hidden" name="modelList[${st.index}].stk_pk" value=''>
<input type="hidden" name="modelList[${st.index}].catName" value=''>
<input type="hidden" name="modelList[${st.index}].catPkNo" value=''>
<input type="hidden" name="modelList[${st.index}].name" value=''>
</s:iterator>
<input type="submit" value="  ">
</form>

 以上のファイルは対応関係です.