struts 태그 바인딩Map<br>>>

이전에 struts에 쓰여진iterator 라벨은 기본적인 집합 데이터를 훑어보았다. 예를 들어 한 대상의List, 여러 대상의List, 맵 등이다.최근에는 또 두 가지 상황을 만났습니다. 여기에 기록해 두면 나중에 언제든지 볼 수 있고 어느 정도 도움이 되었으면 좋겠습니다.
 
첫 번째 상황은 여기에 두 개의 시계가 있는데 하나는 고객표(Customer Info)이고 하나는 수취인표(Taker Info)이다. 두 개의 시계에는 모두 이름(name)과 전화(cellphone)의 속성이 있다. 페이지에 입력한 일련의 조건, 예를 들어name,cellphone 등에 따라 두 개의 시계를 조회하고customer info와taker info가 저장된 집합을 얻는다.이 집합을 페이지에 연결하고 이 사람이 고객표에서 왔는지 수취인표에서 왔는지 표시합니다.
action 코드는 다음과 같습니다.
 
private Map<String, List>map; / map 
private List<TakerInfo>list; // list
private List<CustomerInfo> list2;   // list

public String getAllUserLs(){
      map=new HashMap<String, List>();
      
      list=takerInfoDao.getAllTakers();   //dao , 
      list2=customerInfoDao.getAllCus();  

      if(list.size()>0&&list2.size()>0)
      map.add("takers",list);
      map.add("customers",list2);

      return SUCCESS;
}

 
맵을 바인딩하는 페이지 코드는 다음과 같습니다.
 
 <s:iterator value="map3" var="var">
    <s:if test="#var.key=='takers'">
      <s:iterator value="#var.value" var="takerInfo">
    <tr>
      <td > :<s:property value="#takerInfo.RealName"/></td>
      <td > :<s:property value="#takerInfo.Cellphone"/></td>
    </tr>
   </s:iterator>
    </s:if><s:else>
    <s:iterator value="#var.value" var="customerInfo">
    <tr>
      <td  > :<s:property value="#customerInfo.customerRealName"/></td>
      <td > :<s:property value="#customerInfo.customerCellphone"/></td>
    </tr>
    </s:iterator>
    </s:else>
    </s:iterator>

위의 페이지와 코드는 제가 가능한 한 가장 명확하게 썼습니다. 여러분이 이해하기 쉽고 많은 방법의 실현이나 페이지의 다른 필드, 스타일, js를 모두 지웠습니다.
 
 
두 번째 상황은 모든 도시의 인터페이스를 얻는 것이다. [되돌아오는 값에 도시 이름과 도시 id 등 정보가 저장되어 있다]는 것은 하나의 도시 id에 따라 이 도시에서 모든 차량 브랜드의 인터페이스를 얻는 것이다. [되돌아오는 값에 한 도시 아래의 모든 차량의 브랜드 id, 브랜드 이름 등 정보가 저장되어 있다].
여기서 실현해야 할 것은 한 페이지에 모든 차량 브랜드의 이름을 표시하고 그것이 어느 도시 아래에 속하는지 표시하는 것이다. 만약에 상하이에 10개의 차량 브랜드가 있고 무한에 10개의 차량 브랜드가 있다면 이 20대의 자동차를 상세하게 표시하고 어느 도시 아래에 있는지 지적해야 한다.
 
action 코드는 다음과 같습니다.
 
    private List<Map<String, Object>> brandsMapList; // map
    private List<Map<String, Object>> regionMapList; // map, id
    private Map<String, List<Map<String, Object>>> allBrandMap; // , map


public String showAllBrand(){
        // 
       allBrandMap=new HashMap<String, List<Map<String,Object>>>();
       // 
       regionMapList=Dom4jUtil.parserXmlStr(carBrandService.getCitys());

        for(int i=0;i<regionMapList.size();i++){
                 // brand
                             brandsMapList=Dom4jUtil.parserXmlStr(carBrandService.getSelfDriveServiceCityBrands(regionMapList.get(i).get("id").toString()));
                    // , brand
                    allBrandMap.put(regionMapList.get(i).get("name").toString(), brandsMapList);
               }


}
 
이 집합을 연결하는 jsp 페이지는:
	    <s:iterator value="allBrandMap" status="index" var="citys">
	      <s:if test="#citys.value!=null">
	    	<s:iterator value="#citys.value" var="brand">
			    <tr>
			      <td ><s:property value="#brand.name"/></td>
			      <td ><s:property value="#citys.key"/> </td>
			      <td >[ ][ ]</td>
			    </tr>
	    	</s:iterator>
	       </s:if>
	    </s:iterator>
 

좋은 웹페이지 즐겨찾기