首页 > 代码库 > 采用jsp页面与java代码分离的方式写一个简单的二维表
采用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代码分离的方式写一个简单的二维表