標籤:pac 頁面 rate 編寫 blog java代碼 source 多少 規範
前提:在我們做程式時追求的是高內聚,低耦合,但是如果我們把jsp頁面的的代碼和java的代碼都放在了jsp的代碼編寫中,使java和jsp高耦合這樣的話不僅使jsp字碼頁面顯得很複雜,而且也特別讓不利於以後的維護,所以我們有了一個不成文的規範就是分層架構,把javad代碼與jsp的代碼分離開來,使jsp字碼頁中更加乾淨整潔。
下面我將於用jsp和java代碼分離的方法做出這樣的一個二維表(做一個jsp頁面動態顯示資訊表)
第一步:首先我們需要一個實體類用於存放一個人的一整條資訊(根據表格資訊有編號,名字,班級,籍貫)
a.我們先建立一個項目在這裡我就用student來命名項目名(項目名一般用全小寫)
b.我們在student項目裡面再建一個包名字就叫entity(這裡面放的是實體類,也就是一個學生的資訊)
c.在entity的包裡面建一個類,類名我就叫StudentInfo(學生資訊的意思)
d.接下來就是在這個類裡面寫代碼了先填寫屬性 和二維表的欄位要一致
然後對這些屬性進行封裝:把滑鼠移到id那裡右鍵==》找到Source==>Generate Getters and Setters點擊進去就會有這樣的頁面
然後就會自動對屬性進行封裝
第二步:寫一個介面和實現介面的類
a.先建立一個包Service再建立一個介面類StudentService
b.在StudentService介面裡面寫一個方法用於返回List<StudentInfo>
public interface StudentService {
//有多少個商務邏輯,就設計多少個方法
public List<StudentInfo> getAllStudents();
}
c.再從這個包裡面建立一個類StudentServiceImpl(用於實現介面的方法)
public class StudentServiceImpl implements StudentService {
//裡面填寫商務邏輯代碼
public List<StudentInfo> getAllStudents() {
//存放所有學生資訊的資料集合
List<StudentInfo> stuList = new ArrayList<StudentInfo>();//建立List集合把所有學生的資訊都放在集合裡面去
//類比從資料庫取出3條學生資訊
StudentInfo si1 = new StudentInfo();//每new一個StudentInfo類就代表一個學生的資訊
StudentInfo si2 = new StudentInfo();//這裡new了三個所以就有三個學生的資訊
StudentInfo si3 = new StudentInfo();
si1.setId("1");//在第一個學生裡面添加編號
si2.setId("2");//在第二個學生裡面添加編號
si3.setId("3");//在第三個學生裡面添加編號
si1.setName("李偉銘");//在第一個學生裡面添加名字
si2.setName("王顯軍");//在第二個學生裡面添加名字
si3.setName("大頭");//在第三個學生裡面添加名字
si1.setClasses("140");//在第一個學生裡面添加班級
si2.setClasses("140");//在第二個學生裡面添加班級
si3.setClasses("140");//在第三個學生裡面添加班級
si1.setClasses("火星");//在第一個學生裡面添加籍貫
si2.setClasses("水星");//在第二個學生裡面添加籍貫
si3.setClasses("土星");//在第三個學生裡面添加籍貫
//把3個學生存放到List集合中去
stuList.add(si1);
stuList.add(si2);
stuList.add(si3);
return stuList;//返回List集合裡面的資料
}
}
第三步:編輯JSP頁面代碼
a.先創一個jsp頁面
b.在裡面填寫代碼
<table width="70%" boder="0" cellspacing="1" cellpadding="1" align="center" bgcolor="#F00">
<tr bgcolor="#FFFFFF">//先用HTML的代碼做出頁面
<td>編號</td>
<td>姓名</td>
<td>班級</td>
<td>籍貫</td>
</tr>
<%
StudentService stuService=new StudentServiceImpl();//用介面new對象(因為介面不能直接new對象所以)
//所以用介面的子類new對象stuService,就代表是介面
//的實作類別
List<StudentInfo> stuList=stuService.getAllStudents();//調用實作類別的方法返回的是一個List<StudentInfo>
for(StudentInfo student:stuList){//利用遍曆的方法輸出學生資訊的資料
%>
<tr bgcolor="#FFFFFF">
<td><%=student.getId()%></td>//然後把編號,姓名,班級,籍貫的資訊放在表格裡
<td><%=student.getName()%></td>
<td><%=student.getClasses()%></td>
<td><%=student.getPlace()%></td>
</tr>
<%}%>
</table>
運行jsp頁面
採用jsp頁面與java代碼分離的方式寫一個簡單的二維表