MVC模式分析講解與Type safety: Unchecked cast from Object to ArrayList相關編譯錯誤處理...

     總結一下今天寫的代碼,總覺得有一些需要拿來總結的,這些天一直困擾我的的MVC模式終於被我攻克了,自己寫了一個比較容易理解的測試代碼、

#################################################################

這是模型層

public static Collection<Team> allTeams() throws Exception {
		
		ArrayList<Team> teams = new ArrayList<Team>();//創建集合對象
		
		//從數據庫獲取數據
		Connection cn = DataSource.getConnection();
		Statement stmt = cn.createStatement();
		ResultSet rs = stmt.executeQuery("select * from team");
		
		while(rs.next()) {
			Team team = new Team();//創建team對象
			//用數據庫取得的數據設置team對象的屬性
			team.setId(rs.getInt("id"));
			team.setName(rs.getString("name"));
			team.setSlogan(rs.getString("slogan"));
			team.setLeader(rs.getString("leader"));
			
			teams.add(team);//把team對象放到集合teams中
		}

		return teams;
	}

 

 

這是控制層

protected void doGet(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {
		try {
			Collection<Team> teams = TeamBusiness.allTeams();

			request.setAttribute("teams", teams);

			RequestDispatcher rd = request
					.getRequestDispatcher("../viewTeams.jsp");
			rd.forward(request, response);

		} catch (Exception e) {
			e.printStackTrace();

			RequestDispatcher rd = request
					.getRequestDispatcher("../viewTeamsFail.jsp");
			rd.forward(request, response);
		}
	}

 

這是視圖層

<table border="1" align="center">
<tr><th>組名</th><th>口號</th><th>組長</th></tr>
<%
Collection<Team> teams = (Collection<Team>)request.getAttribute("teams");//這個地方對報警告
Iterator<Team> it = teams.iterator();
while(it.hasNext()) {
	Team team = it.next();
%>
<tr>
<td><%=team.getName()%></td>
<td><%=team.getSlogan()%></td>
<td><%=team.getLeader()%></td>
</tr>
<%
}
%>
</table>

 

學過一點MVC模式的人都基本上能夠很容易的看懂這幾段代碼,我們通過鏈接的訪問servlet,servlet會通過doget的方式獲取信息。然後定向到所要顯示的頁面。自己畫了一張圖容易理解。

 

 

 



  

最後想要解決相關- Type safety: Unchecked cast from Object to   ArrayList<Reply>的問題,自己做的項目報錯,還以爲是這個原因,最後證明與這個毫無關係,這只是簡單的警告而已,意思是當Object類型轉換爲ArrayList類型會有危險。至於什麼危險我也不知道。一下提供幾點解決方案,只是讓自己寫的代碼少一些警告而已,自己感覺沒那個必要

第一:添加@SuppressWarnings("unchecked")  

第二:myeclipse的Window->Preferences->Java->Compiler->Errors/Warning->Generic types中Unchecked generic type operation設置爲Ignore。

第三:myeclipse的Window->Preferences->Java->Compiler將Compiler compliance level 設置爲小於1.5。

 

爲什麼javaeye沒有微軟雅黑這個字體,

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