使用EL表达式访问Bean的各个属性。
创建User类型对象,绑定在request对象中,输出基本类型的属性值以及引用类型的属性值。
步骤一:创建Course类和User类
创建Course课程类,包括课程Id和课程名称属性,分别为各属性添加get/set方法。如图-1所示。
图- 1
创建User用户类,包括姓名,年龄,课程,兴趣爱好属性。其中课程属性为引用类型,兴趣爱好为数组类型。分别为各属性添加get/set方法。如图-2所示。
图- 2
步骤二:创建el01.jsp页面
新建工程后,添加el01.jsp页面,使用小脚本创建User类型的对象。将对象绑定在request对象中,使用Java代码输出绑定的对象的各个属性。如图-3所示。
图- 3
步骤三:使用EL表达式输出属性
在el01.jsp页面中,添加EL表达式,输出姓名、年龄属性的值,输出引用类型属性课程的课程名称的值。如图-4所示。
图-4
步骤四:部署工程,查看el01.jsp页面的输出结果
部署工程,访问el01.jsp页面,结果如图-5所示。上面输出的值是使用java代码,下面输出的值使用的是EL表达式的方式。从代码角度可以看出EL表达式大大简化了JSP页面的代码形式。
图- 5
Course.java文件代码如下:
package bean; /** * 实体类:课程 */ public class Course { private int courseId; private String courseName; public int getCourseId() { return courseId; } public void setCourseId(int courseId) { this.courseId = courseId; } public String getCourseName() { return courseName; } public void setCourseName(String courseName) { this.courseName = courseName; } }
User.java文件代码如下:
package bean; /** * 实体类:用户 */ publicclass User { private String name; privateint age; private Course course; private String[] interest; public String[] getInterest() { return interest; } publicvoid setInterest(String[] interest) { this.interest = interest; } public Course getCourse() { return course; } publicvoid setCourse(Course course) { this.course = course; } public String getName() { return name; } publicvoid setName(String name) { this.name = name; } publicint getAge() { return age; } publicvoid setAge(int age) { this.age = age; } }
el01.jsp文件代码如下:
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="bean.*" %> <html> <head></head> <body> <!-- 访问Bean属性 --> <% Course course = new Course(); course.setCourseId(1); course.setCourseName("Servlet"); User u1 = new User(); u1.setName("Luffy"); u1.setAge(17); u1.setCourse(course); u1.setInterest (new String[]{"Sleeping","Eating"}); request.setAttribute("user",u1); %> <!-- 1.Java代码 --> 1.Java代码<hr/> <% User u = (User)request.getAttribute("user"); out.println(u.getName()); out.println(u.getAge()); %><br/><br/> <!-- 2. EL表达式1 --> 2. EL表达式1<hr/> <!-- 2.1 常用类型--> 姓名:${user.name}<br> 年龄:${user.age}<br> <!-- 2.2 引用类型 --> 课程名:${user.course.courseName}<br> <br/> </body> </html>
使用方括号形式的EL表达式访问Bean属性。
访问User对象的姓名属性,使用变量的形式来访问User对象的年龄,使用下标的形式访问爱好属性中的第二个爱好。
步骤一:新建Course类、User类
同上例中的Course、User类。
步骤二:创建User类型对象,绑定到request对象中
如图-6所示。
图- 6
步骤三:修改el01.jsp内容,使用EL表达式访问属性
在EL表达式中,使用方括号形式来访问绑定对象的属性。如图-7所示。
图– 7
可以在request对象中绑定一个属性名称,然后在EL表达式中通过这个绑定名来获取到属性名称,进而间接访问对象属性。如图-8所示。
图– 8
可以在方括号内填写下标来访问对象的数组属性中的某一个值。如图-9所示。
图- 9
步骤四:运行查看结果
图- 10
步骤五:修改el01.jsp内容,设定具体的访问范围
如图-11所示,可以设定检索对象的范围,如request对应requestScope,session对应sessionScope。
图- 11
步骤六:运行查看结果
图- 12
el01.jsp文件代码如下:
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="bean.*" %> <html> <head></head> <body> <!-- 访问Bean属性 --> <% Course course = new Course(); course.setCourseId(1); course.setCourseName("Servlet"); User u1 = new User(); u1.setName("Luffy"); u1.setAge(17); u1.setCourse(course); u1.setInterest (new String[]{"Sleeping","Eating"}); request.setAttribute("user",u1); %> <!-- 1.Java代码 --> 1.Java代码<hr/> <% User u = (User)request.getAttribute("user"); out.println(u.getName()); out.println(u.getAge()); %><br/><br/> <!-- 2. EL表达式1 --> 2. EL表达式1<hr/> <!-- 2.1 常用类型--> 姓名:${user.name}<br> 年龄:${user.age}<br> <!-- 2.2 引用类型 --> 课程名:${user.course.courseName}<br> <br/> 3. EL表达式2<hr/> <!-- 3. EL表达式2 --> 姓名:${user["name"]} <br> <% request.setAttribute("userAge","age"); %> 年龄:${user[userAge]} <br/> 爱好:${user.interest[1]}<br><br/> 4. 访问范围<hr/> <!-- 4. 访问范围 --> 用户姓名:${requestScope.user.name} </body> </html>
使用EL表达式进行算数运算、关系运算、empty运算。
进行empty运算时,分别对空字符串、空集合、null进行判断。
步骤一:新建el02.jsp文件
在el02.jsp页面中使用不同的运算符进行运算,并输出结果查看。如图-13所示。
图- 13
步骤二:运行查看结果
图- 14
el02.jsp文件代码如下:
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.util.*" %> <html> <head></head> <body> <!-- 使用EL表达式进行运算 --> <!-- 1. 算术运算 --> 加:${1+2}<br> 加:${"123" + "456"}<br><hr/> <!-- 加号只能进行加法运算,不能连接 --> <!-- 2. 关系运算 --> ${"123" == "123"}<br> ${"123" eq "123" }<br> <% pageContext.setAttribute("str","abc"); %> ${"abc" eq str }<br><hr/> <!-- 3. empty运算 --> <% request.setAttribute("str1",""); List list = new ArrayList(); request.setAttribute("list1", list); request.setAttribute("obj", null); %> 空字符串:${empty str1}<br> 找不到绑定名对象:${empty xxx }<br> 集合内容为空:${empty list1 }<br> null的结果:${empty obj } </body> </html>
使用EL表达式获取请求参数的值。
在地址栏中直接输入GET方式提交的多个Name-Value,使用EL表达式进行输出。
步骤一:新建el03.jsp页面
如图-15所示,使用param访问Name-Value中的Value,使用paramValues访问Name-Values中的多值。
图- 15
步骤二:在地址栏输入地址,查看输出结果
在地址栏中输入http://localhost:8080/day09/el03.jsp?name=Luffy&inte
rest=Sleeping&interest=Eating 后,查看运行结果如图-16所示:
图- 16
el03.jsp文件的代码如下:
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <html> <head> <title>Insert title here</title> </head> <body> <!-- 获取请求参数 --> 姓名:${param.name}<br/><hr/> 爱好:${paramValues.interest[1]} 爱好:${paramValues.interest[0]} </body> </html>
使用if标签输出员工性别。
添加变量,保留与“男”进行比对的结果,从而判断是否应该输出“女”。
步骤一:新建Employee.java文件
新建具有姓名、性别的实体类bean.Employee类,添加get/set方法。如图-17所示。
图- 17
步骤二:新建jstl01.jsp页面
新建jstl01.jsp页面,添加taglib指令后,使用if标签判断绑定在request对象中的Employee对象的性别属性,并输出中文对应文本。如图-18所示。
图- 18
步骤三:运行查看结果
图- 19
Employee.java文件代码如下:
package bean; public class Employee { private String name; private String gender; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getGender() { return gender; } public void setGender(String gender) { this.gender = gender; } }
jstl01.jsp文件代码如下:
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="bean.Employee" %> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <html> <head></head> <body> <% Employee emp = new Employee(); emp.setName("Luffy"); emp.setGender("m"); request.setAttribute("emp", emp); %> if标签:<hr/> 员工姓名:${emp.name}<br/> 员工性别:<c:if test="${emp.gender=='m'}" var="rs" scope="request">男</c:if> <c:if test="${!rs}">女</c:if> </body> </html>
使用choose标签输出Employee对象的性别属性值。
通过子标签when进行判断后输出性别属性对应的中文说明。
步骤一:新建jstl02.jsp文件
引入标准标签库后,使用choose标签对绑定的对象的属性进行判断并输出对应的文字说明。如图-20。
图 - 20
步骤二:运行查看结果
图- 21
jstl02.jsp文件代码如下:
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="bean.Employee" %> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <html> <head> <title>Insert title here</title> </head> <body> <% Employee emp = new Employee(); emp.setName("Luffy"); emp.setGender("m"); request.setAttribute("emp", emp); %> choose标签:<hr/> 员工性别: <c:choose> <c:when test="${emp.gender=='m'}">男</c:when> <c:otherwise>女</c:otherwise> </c:choose> </body> </html>
使用forEach标签输出绑定的集合对象中的Employee对象的属性。
使用forEach标记的var属性指定每次从集合中获取的一个对象,使用items属性指定需要遍历的集合,使用varStatus属性访问遍历集合过程中下标及记录的数目。
步骤一:新建jstl03.jsp文件
绑定具有两个元素的集合到request对象中,使用forEach标签输出对象的属性。如图-22所示。
图- 22
步骤二:运行查看结果
图- 23
步骤三:修改jstl03.jsp文件,添加varStatus属性
输出varStatus中的index和count的值。index代表对象在集合中的下标,count代表访问过的对象的个数。如图-24所示。
图- 24
步骤四:运行查看结果
图- 25
步骤五:修改jstl03.jsp文件,添加样式,使得对象值交错变色
添加s1和s2两个类样式,使用p标记进行不同对象的区域划分,通过class属性为p标记添加类样式,呈现奇偶行不同颜色的效果。如图-26所示。
图– 26
步骤六:运行查看结果
图– 27
步骤七:增加ActionServlet类
创建Employee对象的集合后绑定到request中,转发至jstl04.jsp页面进行输出。配置web.xml文件,使用后缀匹配模式进行地址映射。如图-28,图-29所示:
图 - 28
图 - 29
步骤八:修改jstl03.jsp页面,结合choose标签输出性别属性的中文说明
结合choose标签,将性别属性的“m”输出对应的“男”,“f”输出对应的“女”。如图-30所示:
图– 30
步骤九:运行查看结果
图- 31
jstl03.jsp文件代码如下:
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="bean.Employee,java.util.*" %> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <html> <head> <style type="text/css"> .s1{ color:red;} .s2{ color:purple;} </style> </head> <body> <% Employee emp1 = new Employee(); emp1.setName("Luffy"); emp1.setGender("m"); request.setAttribute("emp1", emp1); Employee emp2 = new Employee(); emp2.setName("Zoro"); emp2.setGender("m"); request.setAttribute("emp2", emp2); List<Employee> emps = new ArrayList<Employee>(); emps.add(emp1); emps.add(emp2); request.setAttribute("emps", emps); %> forEach标签1:<hr/> <c:forEach var="emp" items="${emps}"> 姓名:${emp.name} 性别:${emp.gender}<br/> </c:forEach> <br/> forEach标签2:<hr/> <c:forEach var="emp" items="${emps}" varStatus="s"> <p class="s${s.index%2+1}"> 姓名:${emp.name} 性别:${emp.gender} count:${s.count} index:${s.index} </p> </c:forEach> </body> </html>
ActionServlet.java文件代码如下:
package web; import java.io.IOException; import java.io.PrintWriter; import java.util.ArrayList; import java.util.List; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import bean.Employee; public class ActionServlet extends HttpServlet { public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); String uri = request.getRequestURI(); String path = uri.substring (uri.lastIndexOf("/") + 1, uri.lastIndexOf(".")); //判断路径 if (path.equals("list")) { List<Employee> emps = new ArrayList<Employee>(); Employee e1 = new Employee(); e1.setName("Luffy"); e1.setGender("m"); emps.add(e1); Employee e2 = new Employee(); e2.setName("Zoro"); e2.setGender("m"); emps.add(e2); //绑定集合到request request.setAttribute("emps", emps); request.getRequestDispatcher("jstl04.jsp") .forward(request,response); } } }
web.xml文件代码如下:
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <display-name></display-name> <servlet> <servlet-name>ActionServlet</servlet-name> <servlet-class>web.ActionServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>ActionServlet</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> </web-app>
jstl04.jsp文件代码如下:
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <html> <head> <style type="text/css"> .s1{color:red;} .s2{color:purple} </style> </head> <body> 员工信息列表:<hr/> <c:forEach var="emp" items="${emps}" varStatus="s"> <p class="s${s.index%2+1}"> 姓名:${emp.name} 性别: <c:choose> <c:when test="${emp.gender=='m'}">男</c:when> <c:when test="${emp.gender=='f'}">女</c:when> <c:otherwise>未知</c:otherwise> </c:choose> <br/> </p> </c:forEach> </body> </html>
补充标签案例
URL标签:
步骤一:新建jstl05.jsp
使用URL标签生成的地址,在禁用Cookie的情况下,系统会自动在链接上添加JSESSIONID,以保证能够访问session对象。如图-32所示:
图- 32
步骤二:新建jstl06.jsp
在jstl06.jsp文件中读取session中绑定的uname的值,并输出。如图-33所示:
图– 33
步骤三:禁用Cookie后,查看点击链接后生成的地址
图– 34
完整代码:
jstl05.jsp文件代码如下::
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <html> <head></head> <body> <%session.setAttribute("uname", "Luffy");%> URL标签:<hr/> <a href="<c:url value='/jstl06.jsp' />">访问jstl06</a> </body> </html>
jstl06.jsp文件代码如下:
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <html> <head> <title>Insert title here</title> </head> <body> session中的uname为:${sessionScope.uname} </body> </html>
set和remove标签:
步骤一:新建jstl07.jsp页面
图– 35
步骤二:运行查看结果
图– 36
完整代码:
jstl07.jsp文件代码如下:
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <html> <head> <title>Insert title here</title> </head> <body> set和remove标记:<hr/> <c:set var="num" scope="session" value="${1+1}"/> set之后: num=${sessionScope.num}<br/> <c:remove var="num" scope="session"/> remove之后:num=${sessionScope.num} </body> </html>
catch标签:
步骤一:新建jstl08.jsp
图 - 37
步骤二:访问查看结果
图– 38
完整代码:
jstl08.jsp文件代码如下:
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <html> <head> <title>Insert title here</title> </head> <body> catch标记:<hr/> <c:catch var="msg"> <% Integer.parseInt("123a"); %> </c:catch> ${msg} </body> </html>
import标记:
步骤一:新建jstl09.jsp
在jstl09.jsp页面中使用import标记将另一个页面嵌入到当前页面中,为了区分,使用加了样式的div来标示jstl10.jsp页面的边界。如图-39所示:
图- 39
步骤二:新建jstl10.jsp
图- 40
步骤三:运行查看结果
图– 41
完整代码:
jstl09.jsp文件代码如下:
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <html> <head> <title>Insert title here</title> </head> <body> This is jstl09...<hr/> <div style="border:solid 1px red"> <c:import url="jstl10.jsp"/> </div> This is jstl09... </body> </html>
jstl10.jsp文件代码如下:
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <html> <head> <title>Insert title here</title> </head> <body> This is jstl10 page ... </body> </html>
redirect标签:
步骤一:新建jstl11.jsp文件
图- 42
步骤二:新建jstl12.jsp文件
图- 43
步骤三:查看运行结果
在地址栏输入http://localhost:8080/day09/jstl11.jsp后回车,会重定向到jstl12.jsp页面上。如图-44所示:
图- 44
步骤四:禁用Cookie后查看运行结果
图- 45
完整代码:
jstl11.jsp文件代码:
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <html> <head> <title>Insert title here</title> </head> <body> <c:set var="num" scope="session" value="${1+1}"/> <c:redirect url="jstl12.jsp"/> </body> </html>
jstl12.java文件代码:
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <html> <head> <title>Insert title here</title> </head> <body> num的值:${sessionScope.num} </body> </html>
out标签:
步骤一:新建jstl13.jsp页面
图- 46
步骤二:查看运行结果
图– 47
完整代码:
jstl13.jsp文件代码如下:
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <html> <head> <title>Insert title here</title> </head> <body> <!-- 写法1 --> <c:out value="${1+1}"/> <br/> 等价于 <!-- 写法2 --> ${1+1}<br/> <!-- 输出变量 --> num:<c:out value="${num}" default="123"/><br/> <!-- 转译序列 --> <table><br/> <c:out value="<table>" escapeXml="false"/> </body> </html>
使用自定义的标签,在JSP页面中输出10次Hello Goddess。
自定义标签具备两个属性,一个用于设定要输出的内容,一个用于设定输出的次数。在自定义标签类中定义两个属性接收页面中设定的数据,获取页面对象中的输出对象,输出内容。
步骤一:新建mytag.HelloTag类,继承SimpleTagSupport类
新建HelloTag类,继承自SimpleTagSupport类,为了接收页面中指定的参数,需要定义两个属性,并添加get/set方法。注意:属性名称一定与使用标签时,暴露的属性名称一致。重写doTag方法,将标签要执行的动作在该方法中进行定义。如图-48所示。
图- 48
步骤二:新建mtag.tld文件
在WEB-INF目录下,新建mtag.tld文件,内容可以参考标准标签库中的c.tld文件的内容。c.tld文件的目录如图-49所示。
图 – 49
在mtag.tld文件中,设定一对儿tag标记即可。如图-50所示。
图– 50
步骤三:新建myTag.jsp文件
图- 51
步骤四:运行,查看结果
图- 52
mytag.HelloTag.java文件代码如下:
package mytag; import java.io.IOException; import javax.servlet.jsp.JspException; import javax.servlet.jsp.JspWriter; import javax.servlet.jsp.PageContext; import javax.servlet.jsp.tagext.SimpleTagSupport; public class HelloTag extends SimpleTagSupport { private String str; private int count; @Override public void doTag() throws JspException, IOException { PageContext ctx=(PageContext)getJspContext(); JspWriter out = ctx.getOut(); for(int i=0;i<count;i++){ out.println(str+"<br/>"); } } public String getStr() { return str; } public void setStr(String str) { this.str = str; } public int getCount() { return count; } public void setCount(int count) { this.count = count; } }
mtag.tld文件代码如下:
<?xml version="1.0" encoding="UTF-8" ?> <taglib xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd" version="2.1"> <tlib-version>1.1</tlib-version> <short-name>c3</short-name> <uri>http://www.tarena.com.cn/mytag</uri> <tag> <description>根据指定的次数打印文本</description> <name>pt</name> <tag-class>mytag.HelloTag</tag-class> <body-content>empty</body-content> <attribute> <description>Content</description> <name>str</name> <required>false</required> <rtexprvalue>false</rtexprvalue> </attribute> <attribute> <description>Count</description> <name>count</name> <required>false</required> <rtexprvalue>false</rtexprvalue> </attribute> </tag> </taglib>
myTag.jsp文件的代码如下:
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib uri="http://www.tarena.com.cn/mytag" prefix="c3" %> <html> <head> <title>Insert title here</title> </head> <body>ac <c3:pt count="10" str="Hello Goddess"/> </body> </html>
使用El表达式和JSTL改写员工管理的增删改查功能。
entity、dao、web包下面的类不用修改,参考前面案例拷贝。web.xml文件无需修改,参考前面案例拷贝。updateEmp.jsp页面、listEmp.jsp、error.jsp页面中的Java代码由EL表达式和JSTL进行替换。addEmp.jsp页面中无Java代码,无需修改,参考前面案例拷贝即可。
步骤一:参考前面案例中的代码,构建如下结构的Web项目
图- 53
步骤二:修改listEmp.jsp文件
删除listEmp.jsp中的小脚本,替换为JSTL,如图-54所示。
图– 54
步骤三:修改uploadEmp.jsp文件
删除uploadEmp.jsp文件中的小脚本,替换为JSTL的。如图-55所示。
图- 55
步骤四:修改error.jsp页面
图- 56
listEmp.jsp文件代码如下:
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="entity.*,java.util.*"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <html> <head> <title>员工列表</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <link rel="stylesheet" type="text/css" href="css/style.css" /> </head> <body> <div id="wrap"> <div id="top_content"> <div id="header"> <div id="rightheader"> <p> 2009/11/20 <br /> </p> </div> <div id="topheader"> <h1 id="title"> <a href="#">main</a> </h1> </div> <div id="navigation"></div> </div> <div id="content"> <p id="whereami"></p> <h1>员工信息</h1> <table class="table"> <tr class="table_header"> <td>编号</td> <td>姓名</td> <td>薪水</td> <td>年龄</td> <td>操作</td> </tr> <c:forEach var="emp" items="${emps}" varStatus="s"> <tr class="row${s.index%2+1}"> <td>${emp.id}</td> <td>${emp.name}</td> <td>${emp.salary}</td> <td>${emp.age}</td> <td> <a href="delete.do?id=${emp.id}" onclick="return confirm('是否确认删除${emp.name}信息?');">删除</a> <a href="load.do?id=${emp.id}">修改</a> </td> </tr> </c:forEach> </table> <p> <input type="button" class="button" value="增加员工" onclick="location='addEmp.jsp'" /> </p> </div> </div> <div id="footer"> <div id="footer_bg">ABC@126.com</div> </div> </div> </body> </html>
uploadEmp.jsp文件代码如下:
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="entity.*" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <html> <head> <title>修改员工信息</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <link rel="stylesheet" type="text/css" href="css/style.css" /> </head> <body> <div id="wrap"> <div id="top_content"> <div id="header"> <div id="rightheader"> <p> 2009/11/20 <br /> </p> </div> <div id="topheader"> <h1 id="title"> <a href="#">Main</a> </h1> </div> <div id="navigation"> </div> </div> <div id="content"> <p id="whereami"> </p> <h1> 更新员工 </h1> <form action="update.do?id=${emp.id}" method="post"> <table cellpadding="0" cellspacing="0" border="0" class="form_table"> <tr> <td valign="middle" align="right"> 编号: </td> <td valign="middle" align="left"> ${emp.id} </td> </tr> <tr> <td valign="middle" align="right"> 姓名: </td> <td valign="middle" align="left"> <input type="text" class="inputgri" name="name" value="${emp.name}"/> </td> </tr> <tr> <td valign="middle" align="right"> 薪水: </td> <td valign="middle" align="left"> <input type="text" class="inputgri" name="salary" value="${emp.salary}"/> </td> </tr> <tr> <td valign="middle" align="right"> 年龄: </td> <td valign="middle" align="left"> <input type="text" class="inputgri" name="age" value="${emp.age}"/> </td> </tr> </table> <p> <input type="submit" class="button" value="修改" /> </p> </form> </div> </div> <div id="footer"> <div id="footer_bg"> ABC@126.com </div> </div> </div> </body> </html>
error.jsp文件的代码如下:
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <html> <head> <title>错误提醒</title> </head> <body style="font-size:24px"> <c:if test="${err_msg==null}" var="msg" scope="request"></c:if> <c:if test="${!msg}">${err_msg}</c:if> 系统异常 <a href="list.do">返回</a> </body> </html>