一、Jsp脚本问题
代码结构混乱
脚本与HTML混合,容易出错
代码不易于维护

二、EL表达式
EL表达式语法:
${EL表达式} ,作用是用于输出,完全可以替代

<% =    %>

并且可以处理null对象。在各个作用域中查询对象,优点是使页面整洁,可读性高,有利于后期的页面维护。EL 表达式会自动在各个作用域中查找数据,
查找的顺序为: page->request->session-application,
EL表达式在访问时也可以指明只访问某个作用域的数据,${requestScope[student]},作用范围如下:
EL和JSTL标准标签库

EL操作符“.”获取对象的属性.如下
${stu.studentNo} 输出对象的某个属性值,直接给属性名就行,它会自动去调用封装属性的get方法.
操作符“[]”可以取对象的属性及集合中的某个对象
${list[i]}
在EL表达式中可以用算术符进行运算
EL和JSTL标准标签库
三、JSTL标准标签库
使用了EL表达式可以简化页面代码结构,那么为什么还要使用JSTL呢?因为EL不能实现判断,也实现了循环这样操作。
STL(JavaServerPages Standard Tag Library) ,JSP标准标签库,它实现JSP页面中的逻辑控制。
EL和JSTL标准标签库
使用步骤:
1.获取jstl.jar和standard.jar文件。导入到Eclipse工具中,如果是Myeclipse则不需要导入,因为已经导入了。
2.在页面上导入jstl
<%@ taglib url= "http://java.sun.com/jsp/jstl/core" prefix="c" %>
注意:prefix表示前缀,可以随意命名,建议用c来表示。
3.在jsp页面上使用jstl来处理业务逻辑

循环案例

<c:forEach items="${students }" var="stu">
       <tr>
         <td>${stu.studentNo }</td><td>${stu.name }</td><td>${stu.sex }</td>
         <td>${stu.age }</td><td>${stu.phone }</td><td>${stu.address }</td>
         <td>${stu.email }</td><td><fmt:formatDate value="${stu.birthday }" pattern="yyyy年MM月dd日"/></td><td>${stu.gradeId }</td>
         <td>
           <a href="student?tag=edit&id=${stu.studentNo }">编 辑</a> | 
           <a href="student?tag=del&id=${stu.studentNo }" onclick='return confirm(\"你确定要删除吗?\")'>删 除</a>
         </td>
       </tr>     
     </c:forEach>

逻辑案例:

<p>
			         性别:
			    <c:choose>
			      <c:when test="${student.sex == '男' }">
			         <input type='radio' name='sex' value='男' checked> 男
			         <input type='radio' name='sex' value='女' > 女
			      </c:when>
			      <c:otherwise>
			         <input type='radio' name='sex' value='男' > 男
			         <input type='radio' name='sex' value='女' checked> 女
			      </c:otherwise>
			    </c:choose>

四、外键对象处理
数据表有主外外键关系时,一个表要引用另一个表的主键值,子表所存储的是主表的主键值,在页面上如果显示主键,则表达不直观。处理的办法是,采用存储外键对象的方式来实现。

相关文章: