采用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页面

                                                                                                                       

原文地址:https://www.cnblogs.com/panweiwei520/p/6875448.html