Struts2中標籤從MySQL數據庫中查詢出數據實現二級聯動

1.先在mysql建立兩張表,一張城市表City,一張地區表Area:


2.寫兩個實體類:

City.java

package com.jmx.entity;

public class City {
	private int id;
	private String name;
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public City(int id,String name) {
		this.id = id;
		this.name = name;
	}
	public City() {
		
	}
}

Area.java

package com.jmx.entity;

public class Area {
	private int id;
	private int cid;
	private String name;
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public int getCid() {
		return cid;
	}
	public void setCid(int cid) {
		this.cid = cid;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public Area(int id,String name,int cid) {
		this.id = id;
		this.name = name;
		this.cid = cid;
	}
	public Area() {
		
	}
}

3.寫一個Dao類:

Dao.java

public class Dao {
	/**
	 * 查詢所有城市
	 * @throws ClassNotFoundException 
	 * */
	public List<City> SelCity() throws SQLException, ClassNotFoundException{
		Class.forName("com.mysql.jdbc.Driver");
		Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/emp","root","408817");
		PreparedStatement ps = null;
		ResultSet rs = null;
		List<City> list = new ArrayList<City>();
		String sql = "select * from City";
		try {
			ps = conn.prepareStatement(sql);
			rs = ps.executeQuery();
			while(rs.next()) {
				City city = new City();
				city.setId(rs.getInt("id"));
				city.setName(rs.getString("name"));
				list.add(city);
			}
			conn.close();
			rs.close();
			ps.close();
			
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return list;
	}
	
	/**
	 * 查詢所有的地區
	 * @throws SQLException 
	 * @throws ClassNotFoundException 
	 * */
	public List<Area> SelArea(int id) throws SQLException, ClassNotFoundException{
		Class.forName("com.mysql.jdbc.Driver");
		Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/emp","root","408817");
		PreparedStatement ps = null;
		ResultSet rs = null;
		List<Area> list = new ArrayList<Area>();
		String sql = "select * from Area a join City c on a.cid=c.id where a.cid=?";
		try {
			ps = conn.prepareStatement(sql);
			ps.setInt(1, id);
			rs = ps.executeQuery();
			while(rs.next()) {
				Area area = new Area();
				area.setCid(rs.getInt("id"));
				area.setName(rs.getString("name"));
				area.setCid(rs.getInt("cid"));
				list.add(area);
			}
			conn.close();
			rs.close();
			ps.close();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return list;
		
	}

4.action類

DemoAction.java

public class DemoAction extends ActionSupport {
	private String user;
	private List<City> citylist;
	private Map<Integer,List<Area>> areaMap;
	Dao dao = new Dao();

	@Override
	public String execute() throws Exception {
		citylist = dao.SelCity();
		areaMap = new HashMap<Integer,List<Area>>();
		List<Area> area = new ArrayList<Area>();
		for(int i=0;i<citylist.size();i++) {
			area=dao.SelArea(citylist.get(i).getId());
			areaMap.put(citylist.get(i).getId(), area);
		}
		return SUCCESS;
	}
	
	
	public String getUser() {
		return user;
	}


	public void setUser(String user) {
		this.user = user;
	}


	public List<City> getCitylist() {
		return citylist;
	}

	public void setCitylist(List<City> citylist) {
		this.citylist = citylist;
	}

	public Map<Integer, List<Area>> getAreaMap() {
		return areaMap;
	}

	public void setAreaMap(Map<Integer, List<Area>> areaMap) {
		this.areaMap = areaMap;
	}
}

5.index.jsp

	<s:form action="login">
		<s:doubleselect name="a" doubleList="areaMap.get(top.id)" list="citylist" doubleName="id1" listKey="id" listValue="name" doubleListKey="id" doubleListValue="name" theme="simple" ></s:doubleselect>
		<s:submit />
	</s:form>

6.struts.xml

	<package name="default" extends="struts-default">
		<action name="login" class="com.jmx.action.DemoAction">
			<result name="success">/index.jsp</result>
		</action>
	</package>

訪問:


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章