最近一直在学习心得知识点,对之前学习表单等基础知识忘记了许多,在此做一个简单的总结,方便以后学习查阅。
1.想要做一个如下图所示效果的表单页面
2.大体的框架需要以下标签
这里写代码片
3.表单提交的servlet标准写法
<form action="${pageContext.request.contextPath}/addCustomerServlet" method="post">
4.数据回显的判断,
*首先需要引入标签库,函数库
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
在转发之前把数据封装到request里面
// 把邮箱存在的错误信息转发出去
request.setAttribute("old", c);// 如果错误把错误信息保存起来
request.setAttribute("email_exist_error", "邮箱已经存在");
// 如果邮箱错误,信息回显
request.getRequestDispatcher("/addCustomer.jsp").forward(request, response);
*1.文本框的回显
<input type="text" name="name" value="${old.name }">
*2.单选框的回显
利用标签进行判断,checked=”checked”可以简写成CHECKED;
<tr>
<td>选择性别:</td>
<td><input type="radio" name="gender" value="男"
<c:if test="${old.gender=='男'}" > CHECKED</c:if>>男
<input type="radio" name="gender" value="女"
<c:if test="${old.gender=='女'}" > CHECKED</c:if>>女</td>
</tr>
*3.多选框的回迁
方式一:利用jstl中的contains函数
<tr>
<td>客户爱好:</td>
<td><input type="checkbox" name="hobby" value="篮球"
<c:if test="${fn:contains(old.hobby,'篮球')}" > CHECKED</c:if>>篮球
<input type="checkbox" name="hobby" value="足球"
<c:if test="${fn:contains(old.hobby,'足球')}" > CHECKED</c:if>>足球
<input type="checkbox" name="hobby" value="乒乓球"
<c:if test="${fn:contains(old.hobby,'乒乓球')}" > CHECKED</c:if>>乒乓球
<input type="checkbox" name="hobby" value="台球"
<c:if test="${fn:contains(old.hobby,'台球')}" > CHECKED</c:if>>台球
<input type="checkbox" name="hobby" value="电影"
<c:if test="${fn:contains(old.hobby,'电影')}" > CHECKED</c:if>>电影
<input type="checkbox" name="hobby" value="看书"
<c:if test="${fn:contains(old.hobby,'看书')}" > CHECKED</c:if>>看书</td>
</tr>
方式二:利用标签库的 切割 c:forTokens
根据jdbcUtil封装实体对象的,字符串连接的方式
3.下拉框的回显
<tr>
<td>客户类型:</td>
<td><
select name="type">
<option value="普通客户"
<c:if test="${old.type == '普通客户'}" > SELECTED</c:if>>普通客户</option>
<option value="黄金客户"
<c:if test="${old.type == '黄金客户'}" > SELECTED</c:if>>黄金客户</option>
<option value="钻石客户"
<c:if test="${old.type == '钻石客户'}" > SELECTED</c:if>>钻石客户</option>
</select>
</td>
</tr>
总结利用web域对象传递数据的时候,起名字一定要有意义,有规范,同一个项目中一般不要出现相同的名字。
后续再jsp页面中可以直接省略前面的域对象,直接使用old.name;这样的方式,tomcat自动会从小到大范围寻找,所以后面写的就简单多了!!!
request.setAttribute("old", c);// 如果错误把错误信息保存起来
request.setAttribute("email_exist_error", "邮箱已经存在");