采用jsp頁面與java代碼分離的方式寫一個簡單的二維表
前提:在我們做程序時追求的是高內聚,低耦合,但是如果我們把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代碼分離的方式寫一個簡單的二維表