list 객체 그룹

5909 단어 jspstruts
/**
 * 
 */
package suntest;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

/**
 * @author zhang
 *
 */
public class Test {

	/**
	 * @param args
	 */
	public static void main(String[] args) 
	{
		List<User>  users = new ArrayList<User>();
		User user1 = new User();
		user1.setName("grace");
		user1.setFaMember("father");
		user1.setFaMemberAge("50");
		user1.setFaMemberWork("worker");
		
		User user2 = new User();
		user2.setName("grace");
		user2.setFaMember("mother");
		user2.setFaMemberAge("45");
		user2.setFaMemberWork("worker");
		
		User user3 = new User();
		user3.setName("lily");
		user3.setFaMember("mother");
		user3.setFaMemberAge("60");
		user3.setFaMemberWork("teacher");
		
		User user4 = new User();
		user4.setName("candy");
		user4.setFaMember("father");
		user4.setFaMemberAge("60");
		user4.setFaMemberWork("housewife");
		
		
		users.add(user1);
		users.add(user2);
		users.add(user3);
		users.add(user4);
		
		// 
		Map<String,List<User>> mapList = new HashMap<String,List<User>>();
		Map<String,User> mapObject = new HashMap<String,User>();
		
		
		// 1
		for(Iterator it = users.iterator();it.hasNext();)
		{   
			User user = (User)it.next();   
  
            if(mapList.containsKey(user.getName()))
            { // ,    
                List<User> userList = mapList.get(user.getName());   
                userList.add(user);  
                
            }else
            {   
                List<User> userList2 = new ArrayList<User>();  
                // list   
                userList2.add(user); 
                mapList.put(user.getName(), userList2);
                
            }   
            
        }  
		System.out.println(mapList);
		
		
		// 2 
		//List<List<User>> list = new ArrayList<List<User>>();
		for(Map.Entry<String, List<User>> m: mapList.entrySet())//  Map   
		{ 
			//Map newMapList = new HashMap(); //   
			
			//String key = m.getKey();
			List<User> userSingle = new ArrayList<User>();
			userSingle  = m.getValue();  
            
            System.out.println(userSingle);
            //list.add(userSingle);
		}
		
			
		
		

	}

	
	public static class User
	{
		private String name;
		private String faMember;
		private String faMemberAge;
		private String faMemberWork;
		
		public String getFaMember() 
		{
			return faMember;
		}
		public void setFaMember(String faMember) {
			this.faMember = faMember;
		}
		public String getFaMemberAge() {
			return faMemberAge;
		}
		public void setFaMemberAge(String faMemberAge) {
			this.faMemberAge = faMemberAge;
		}
		public String getFaMemberWork() {
			return faMemberWork;
		}
		public void setFaMemberWork(String faMemberWork) {
			this.faMemberWork = faMemberWork;
		}
		public String getName() {
			return name;
		}
		public void setName(String name) {
			this.name = name;
		}
		
		public String toString()
		{
			StringBuffer str = new StringBuffer();
			str.append(this.getName());
			str.append(",");
			str.append(this.getFaMember());
			str.append(",");
			str.append(this.getFaMemberAge());
			str.append(",");
			str.append(this.getFaMemberWork());
			
			return str.toString();
			
		}
	}
}

오늘 한 네티즌이 저에게 이런 질문을 했습니다. 그는 맵으로 데이터층이 되돌아오는 데이터를 봉인하고 Jsp페이지에서 struts2 라벨을 통해 맵의 키 값을 표시하려고 했습니다. 사실 이전에 봉인된 데이터는 모두 List를 사용했습니다. 지금까지 맵으로 데이터를 봉인한 적이 없습니다. 가장 많은 것은 사용자의 로그인 정보를 저장하여 사용자가 로그인했는지 아닌지를 판단하는 데 사용했습니다. 그러나 맵으로 데이터를 봉인하는 것은 현명한 행동이 아닙니다.그러나 나도 이전에 이렇게 한 적이 없어서 인터넷에서 오랫동안 찾았지만 관련 정보를 찾지 못했다. 나중에 struts2는 액션의 속성 값을 직접 표시할 수 있다고 생각해서 다음과 같은 방식으로 이 문제를 해결했다. 구체적인 코드는 다음과 같다. 액션.
    public String execute() throws Exception ...{
        if(this.getUserName().equals("chen") && this.getPwd().equals("chen")) ...{
            ActionContext.getContext().getSession().put("userName", this.getUserName());
            User user = new User();
            user.setName("a");
            user.setCode("A");
            map.put(1, user);
            user = new User();
            user.setName("b");
            user.setCode("B");
            map.put(2, user);
            return SUCCESS;
        }
        return ERROR;
}다음은 jsp<%@taglib uri="/struts-tags"prefix="s"%>
   
   
   

       
           

           
       
   
   
   

       

기사가 네트워크 파이프라인에서 옮겨 싣기:http://www.bitscn.com/pdb/java/200806/143934.html

좋은 웹페이지 즐겨찾기