9.28
1.今天写项目了,把修改那部分写完了
(1)将html复制到jsp时,html中可能会有<base href="<%=basePath%>"一句代码,可能会报错basePath cannot be resolved to a variable ,解决办法是:
在jsp的中加入
<%
String path = request.getContextPath();
String basePath = request.getScheme()+
"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
(2)修改功能需要两个步骤:数据回显和修改功能,共需两个servlet
数据回显:
现根据id查找要修改用户的信息(id的传递同删除功能id的传递一样),然后存入request域中,并跳转到update.jsp页面,用EL表达式将值取出来放到相应的value中。
注意:回显时遇到radio(单选按钮,如:男,女)或下拉菜单(select,option),可用jstl表达式中的if来解决。
如:
<c:if test="${user.gender=='男'}">
<input type="radio" name="gender" vaule="男" checked>男
<input type="radio" name="gender" vaule="女">女
</c:if>
<c:if test="${user.gender=='女'}">
<input type="radio" name="gender" vaule="男">男
<input type="radio" name="gender" vaule="女" checked>女
</c:if>
注意:下拉菜单中用的是selected而不是checked
(3)修改数据:
在修改数据时,是根据用户的id来修改的,所以在提交表单时应该有id的信息,但是update.jsp页面中没哟id那一项,所以需要加隐藏项来传递id
<input type="hidden" name="id" value="${user.id}">
(4)jsp的注释写法
<!-- .... -->
(5)修改语句的写法:
String sql=“update user set name=?,gender=?,qq=?where=?”;