前两期的内容不知道大家理解的怎么样,我并没有详细的去解释代码的意思,如果你已经自己都钻研明白了,那最好过,但还是一知半解的话,接下来我会仔细分析代码。

1.register.jsp:这部分代码只是简单的注册界面,把数据提交到UserAction,执行其save方法,save方法都执行了哪些内容呢?

根据之前的学习可知,UserAction会接受到register提交来的信息,由于我们输入了username和password,那么就会自动调用对应的set方法。在save方法中,创建了一个user实例,并把信息储存进去,调用UserDB的静态save方法把实例保存到数据库,如果这一句执行成功的话,就能保证信息存储在数据库中了。之后为了显示用户的列表,需要把数据库中的所有注册信息拿出来,只要调用UserDB的listall ()方法即可,为了转发list中的信息,我们可以把list信息放到request中,方法就是调用期setAttribute方法,我们知道,request的作用范围是在一个转发状态下,这样,我们在页面转发的过程中,就可以随时取得request中的list。最后如果没有没问题,会return一个success。

对于delete方法和getUser方法道理是一样的。

2.listAll.jsp:

返回success后,通过默认的dispatch方式,转发到listAll.jsp,这样listAll.jsp中就会收到信息了。

<s:iterator value="#request.list" id="user">
<tr>
<td><s:a href="getUser.action?username=%{#user.username}"> <s:property
value="username" /></s:a></td> <td><s:a href="getUser.action?username=%{#user.user}"></s:a> <s:property
value="password" /></td> <td><s:a href="deleteUser.action?username=%{#user.username}"
onclick="return del()">delete</s:a></td> </tr>
</s:iterator>

首先调用iterator标签,得到要迭代的列表,td标签中表面上包含了三个超链接,实际上只有两个,因为第二个并没有在<s:a></s:a>之间,对于第一个超链接代表含义如下:

1.getUser.action:超链接到的url,这里和form的action中的意思是一样的。

2.?username=%{#user.username}:信息的传递,?后面的username其实是在getUser.action中的,也就是UserAction中的username,那么这个username的只是什么呢,就是user.username,由于每一个user都是一个bean对象,前面需要加入#来取值,前面的%,是保证{}内的是OGNL表达式。

3.property标签:username和password都是存放在值栈中的,可以直接输出。

4.del(),这里其实涉及到了javasript的知识,其目的知识弹出来一个对话框,如果确定则执行程序。javascript代码如下:

<script type="text/javascript">

   function del()
{
if(confirm("are you sure"))
{
return true;
}
return false;
}
</script>

javascript一定包含在head里。

查看的执行结果:

点击一个链接:

点击delete链接:

这样我们就完成了信息的查看与删除。

不知道细心的同学不知道有没有注意到,如果我们注册一个用户,在用户列表界面刷新一下界面,控制台会有:

也就是说,我们刷新了界面,再一次执行了save,但是由于主键不能重复,会显示增加用户异常,这不是我们希望看到的,我们要做到,刷新界面,不会添加新的数据到数据库。

在下一期中会给出解决办法,和更新用户的方法。

java web从零单排第二十二期《hibernate》代码分析之查看,删除用户信息的更多相关文章

  1. java web从零单排第二十一期《Hibernate》主键的生成方式,用户增加与显示用户列表

    1.新建register.jsp <%@ page language="java" import="java.util.*" pageEncoding=& ...

  2. java web从零单排第十六期《struts2》控制标签(2)

    1.s:subset标签概述: s:subset标签功能是从一个集合中取出部分元素合并成一个新的集合,新生成的这个集合是原来集合的子集.属性和意义如下: 属性名 是否必需 默认值 类型 说明介绍 co ...

  3. java web从零单排第十七期《struts2》数据标签库(1)

    1.s:action标签: 此标签的作用是在JSP页面中访问action类的数据,执行某些操作,并返回相应的数据.其属性及意义如下: 属性名 是否必需 默认值 类型 说明介绍 executeResul ...

  4. (转)PaperWeekly 第二十二期---Image Caption任务综述

    本文转自:http://mp.weixin.qq.com/s?__biz=MzIwMTc4ODE0Mw==&mid=2247484014&idx=1&sn=4a053986f5 ...

  5. Linux学习总结(十二)—— CentOS用户管理:创建用户、修改用户、修改密码、密码有效期、禁用账户、解锁账户、删除用户、查看所有用户信息

    文章首发于Linux学习总结(十二)-- CentOS用户管理,请尊重原创保留原文链接. 创建用户 useradd -g webadmin -d /home/zhangsan zhangsan pas ...

  6. java web 自定义错误页面 完整jsp错误页面代码(同时写错误日志) error.jsp

    1.首先配置web.xml  添加一下代码 <error-page> <error-code>500</error-code> <location>/e ...

  7. Java Web整合开发王者归来(JSP + Servlet + Struts + Hibernate + Spring) - 读书笔记

    第1章 状态码表示响应类型: 保留 表示请求成功地接收 完成请求客户需进一步细化请求 客户错误 服务器错误 Web服务器: Apache服务器,特长是处理静态页面,效率非常高. Tomcat提供对JS ...

  8. JAVA Web day02--- Android小白的第二天学习笔记

    CSS(美工部分知识,了解) 1. CSS概述 1.1.CSS是什么? * CSS 指层叠样式表 样式表:存储样式的地方 层叠:一层一层叠加 高大富有帅气人 1.2.CSS有什么作用? *CSS就是用 ...

  9. PHP从零单排(十八)图像处理

    1.打开现有的图像 <?php header("Content-type:image/jpeg"); $img=imagecreatefromjpeg("cc.jp ...

随机推荐

  1. [Windows编程] 使用AttachThreadInput 来捕捉其它窗口的键盘输入

    在一些情况下(比如屏幕软键盘或者输入法程序),自己的窗口没有输入焦点但是想要当前焦点窗口的键盘输入消息,可以使用Win32 API函数AttachThreadInput()来解决这个问题.Attach ...

  2. Spring 面试复习

    1   singleton 和 prototype singleton作用域:当把一个Bean定义设置为singleton作用域是,Spring IoC容器中只会存在一个共享的Bean实例,并且所有对 ...

  3. Oracle 使用RMAN

    RMAN 数据库备份 特点: . 跳过未使用的数据块 . 备份压缩 . 执行增量备份 . 块级别的恢复 组件: . RMAN命令执行器(RMAN Executable) . 目标数据库(Traget ...

  4. python实现的文本编辑器 - Skycrab - 博客频道 - CSDN.NET

    Download Qt, the cross-platform application framework | Qt Project Qt 5.2.1 for Windows 64-bit (VS 2 ...

  5. weblogic的ejb远程调用

    这是一篇对EJB远程调用的简单范例.      1.环境:win7  + weblogic 12c + myeclipse8.5      2.目的:实现在myeclispe中对weblogic中EJ ...

  6. Python:2D画图库matplotlib学习总结

    本文为学习笔记----总结!大部分为demo.一部分为学习中遇到的问题总结.包含怎么设置标签为中文等.matlab博大精深.须要用的时候再继续吧. Pyplot tutorial Demo地址为:点击 ...

  7. openstack安装配置

    openstack:1.控制节点安装所有,计算节点只有nova-compute:2.网络选择: nova-network还是neutron: nova-network比较简单, neutron功能强大 ...

  8. 在CheckBox中,仅仅允许选择一项

    作用相当于RadioButonList <html xmlns="http://www.w3.org/1999/xhtml"> <head runat=" ...

  9. BZOJ 3293 分金币

    整体来说,这道题与之前做的1045题目完全一样,出了说法不一样外,思路及做法可以照搬,因此在这里便不再详解.        程序如下:(如有疑问请参看我的博客http://www.cnblogs.co ...

  10. jQuery的扩展

    我们自己通过扩展jQuery来达到 “通过$.xx(paras)的形式来进行调用某个jQuery对象的xx(paras)方法”. 下面就是一个实例: (function(j){//这里的j是一个形参, ...