根据类图建立表
CREATE TABLE `account` ( `account_id` bigint(20) NOT NULL, `name` varchar(255) COLLATE utf8_bin NOT NULL, `currency` varchar(100) COLLATE utf8_bin NOT NULL, `balance` varchar(255) COLLATE utf8_bin NOT NULL, `customer_id` bigint(20) NOT NULL, PRIMARY KEY (`account_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
CREATE TABLE `privilege` ( `Id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) COLLATE utf8_bin DEFAULT NULL, PRIMARY KEY (`Id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
CREATE TABLE `role` ( `Id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) COLLATE utf8_bin DEFAULT NULL, PRIMARY KEY (`Id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
CREATE TABLE `user` ( `Id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) COLLATE utf8_bin DEFAULT NULL, PRIMARY KEY (`Id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
通过rapid-framework代码生成器生成dao代码 具体请查看http://code.google.com/p/rapid-framework/
代码结构如下:
因为意图是做一个权限,权限系统一个有个树形结构是吧,先去找找看什么合适。
思考:一个用户登录加载他的角色角色加载权限,权限一般和菜单关联的,没权限怎么弄,所以还是先做后台。 manager。
先不管界面好看不,后续再优化界面,先做第一个小模块,添加用户。
建立一个edit.jsp页面
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>添加/编辑用户</title> </head> <body> <form action="${ctx}/user/edit.action" method="post"> </form> </body> </html>
这里使用${ctx} 的意图是想获取jsp上下文,不想使用用脚本想引入jstl忘记指令了,只接的<%@ include%> , <%@ page%> 于是www.baidu.com.
只用eclipse中的代码智能提示,(小技巧光标要停止在@后面中间不要有空格)发现还有个taglib指令。
想在tld文件中复制<%@taglib uri="" prefix="c" %>来填写这个晕找不到了,以前用myeclipse很方便,现在用eclipse少了一些库包找不到。于是www.baidu.com jstl.
这是jsp的标准标签库,因为忘记
打开里面的tld复制
我想写个公用的${ctx}上下文,代码如下老是报错,我记得以前就是这样写的:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %> <c:set var="ctx" value="${pageContext.request.contextPath}"/>
后来发现我的uri错了,我复制了c-1_0.tld应该复制c.tld中的uri郁闷,改之后如下:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <c:set var="ctx" value="${pageContext.request.contextPath}"/>
然后做一个页面user目录下的edit.jsp
edit.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@include file="/commons/taglib.jsp" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>添加/编辑用户</title> </head> <body> <form action="${ctx}/user/edit.action" method="post"> 用户名:<input name="user.name" id="name" type="text"> <br/> <input type="submit" value="提交"> </form> </body> </html>
然后struts2建一个actin
打死都添加不了报错说:不能为property id设置1 继续游不能设置成2,3,4,5这样的于是我检查下ibatis自动生成的配置文件如下:
<insert id="User.insert" > <![CDATA[ INSERT INTO user ( Id , name ) VALUES ( #id# , #name# ) ]]> <!-- mysql: type="post" SELECT select last_insert_id() sqlserver: type="post" SELECT @@identity AS ID oracle: type="pre" SELECT sequenceName.nextval AS ID FROM DUAL DB2: type="pre" values nextval for sequenceName --> <selectKey resultClass="java.lang.Long" type="post" keyProperty="id" > select last_insert_id() </selectKey> </insert>
声明这个id对应数据库(我用的mysql)中列id(int(11))然后自动生成的属性有时Integer的,而这里的ibatis配置文件确对应是Long,于是我改成Integer了,修改之后:
<insert id="User.insert" > <![CDATA[ INSERT INTO user ( Id , name ) VALUES ( #id# , #name# ) ]]> <!-- mysql: type="post" SELECT select last_insert_id() sqlserver: type="post" SELECT @@identity AS ID oracle: type="pre" SELECT sequenceName.nextval AS ID FROM DUAL DB2: type="pre" values nextval for sequenceName --> <selectKey resultClass="java.lang.Integer" type="post" keyProperty="id" > select last_insert_id() </selectKey> </insert>
改了之后就可以保存到数据库了,所以代码生成工具也不是万能的,凡是还是小心的好。
用户可以保存了,在来个查询用户列表的页面,就userList.jsp吧
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@include file="/commons/taglib.jsp" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>用户列表</title> </head> <body> <table> <thead> <tr> <th>用户列表</th> </tr> </thead> <tbody> <c:forEach items="${page.result}" var="x"> <tr> <td>用户Id</td><td>${x.id }</td> <td>用户名</td><td>${x.name }</td> </tr> </c:forEach> </tbody> <tfoot></tfoot> </table> </body> </html>
查询应该有个分页吧。
找个分页插件来用用。
用的是rapid-framework中的分页插件,用jsp tag file写的,不错。
用别人的东西还是引入作者或连接
下面是jsp页面引入如何使用:
userList.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="tang" tagdir="/WEB-INF/tags/simpletable"%> <%@ include file="/commons/taglib.jsp"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>用户列表</title> <script type="text/javascript"> function togglePage(pageIndex){ var index = parseInt(pageIndex); document.getElementById("pageNumber").value = index; var count = document.getElementById("pageSelect").value; document.getElementById("count").value = parseInt(count); document.listForm.submit(); } </script> </head> <body> <form action="${ctx}/user/query.action" name="listForm" method="post"> <input type="hidden" id="pageNumber" name="userQuery.pageNumber" value="${userQuery.pageNumber}"> <input type="hidden" id="count" name="userQuery.pageSize" value="${userQuery.pageSize}"> </form> <table> <thead> <tr> <th>用户列表</th> </tr> </thead> <tbody> <c:forEach items="${page.result}" var="x"> <tr> <td>用户Id</td> <td>${x.id }</td> <td>用户名</td> <td>${x.name }</td> </tr> </c:forEach> <tr> <td colspan="4"><tang:pageToolbar page="${page}"></tang:pageToolbar></td> </tr> </tbody> <tfoot></tfoot> </table> </body> </html>
现在又想把用户列表和添加和用户放在一起,用什么呢?突然想到iframe,好久没用了,维护系统一年了,后台代码写多了,html代码忘光了,不要紧捡回来。
于是在edit.jsp中添加几行代码如下:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@include file="/commons/taglib.jsp"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>添加/编辑用户</title> </head> <body> <form action="${ctx}/user/edit.action" method="post">用户名:<input name="user.name" id="name" type="text"> <input type="submit" value="提交"></form> <iframe src="${ctx}/user/query.action" width="500" height="300"></iframe> </body> </html>
效果图如下:
相关推荐
J2EE开发环境搭建是指创建一个完整的J2EE开发环境,包括安装JDK、Tomcat和Eclipse。下面将详细介绍J2EE开发环境搭建的过程。 一、JDK的环境变量设置 JDK是Java开发的基础环境,安装JDK后需要设置环境变量。环境...
**J2EE开发手册**是针对使用通方应用框V1.0框架进行J2EE应用开发的专业指南,旨在为项目的设计者、开发者、测试者以及任何基于此框架的开发者提供详细的操作指导和参考依据。这份手册不仅是学习J2EE开发的宝贵资料,...
《J2EE开发全程实录》是一本深入探讨J2EE平台开发的实践性书籍,旨在为读者提供全面、详尽的J2EE应用程序开发经验。J2EE(Java 2 Platform, Enterprise Edition)是Oracle公司提供的一个用于构建企业级分布式应用的...
在本章中,我们将深入探讨J2EE应用实践教程中的第二章代码,主要涉及Java Project、Struts2和Hibernate这三个核心技术。J2EE(Java 2 Platform, Enterprise Edition)是一个用于构建企业级应用程序的平台,它提供了...
J2EE设计开发编程指南 J2EE设计开发编程指南 J2EE设计开发编程指南
j2ee开发经验分享j2ee开发经验分享j2ee开发经验分享j2ee开发经验分享j2ee开发经验分享j2ee开发经验分享j2ee开发经验分享j2ee开发经验分享j2ee开发经验分享j2ee开发经验分享j2ee开发经验分享j2ee开发经验分享j2ee开发...
《J2EE项目开发与设计随书源码》是一份宝贵的学习资源,旨在帮助开发者深入理解和实践J2EE(Java 2 Platform, Enterprise Edition)技术。J2EE是Oracle公司推出的用于构建企业级分布式应用程序的平台,它为开发、...
首先,开发J2EE应用需要一个合适的开发环境,MyEclipse便是这样的工具。它提供了丰富的功能,包括代码编辑、项目管理、数据库连接、服务器配置、部署以及调试等。安装MyEclipse后,我们需要创建一个新的J2EE项目。在...
J2EE开发全程实录 源码 part7 J2EE 开发 源码 part7 书名:J2EE开发全程实录; 作者:杨中科主编; 来源:清华大学出版社
在IT领域,特别是软件开发行业中,Java 2 Platform, Enterprise Edition(简称J2EE)是一个极为重要的技术框架,专门用于构建可扩展、健壮的企业级Web应用。《Designing Enterprise Applications with the Java 2 ...
**J2EE开发手册与帮助文档** J2EE(Java 2 Platform, Enterprise Edition)是Oracle公司推出的用于构建企业级分布式应用的平台,它提供了一套标准和框架,支持多种服务,如数据库连接、安全、事务处理、Web服务等。...
J2EE开发全程实录随书光盘,共6个文件(没办法,20M限制),第二部分 J2EE是目前企业级软件开发的首选平台。本书从架构的角度讲解了一个完整的J2EE系统的搭建。内容包括:正则表达式、JSP、Swing、XML等技术在实际中...
为了能够顺利地进行J2EE项目的开发,首先需要搭建一个完整的J2EE开发环境。本文将详细介绍如何安装和配置J2EE开发环境,包括数据库(Mysql+sqlyog可视化工具)、JDK1.8、Tomcat、Chrome浏览器以及Eclipse IDE。 #### ...
J2EE开发使用手册:J2EE为开发企业级的多层应用程序和复杂的企业系统定义了一套API。针对各种各样的企业需求,本书试图通过J2EE解决所有的企业问题。全书共分六大部分30章,分别从企业面临的问题、企业数据的表示、...
6. **学习价值**:对于J2EE初学者来说,这个案例提供了一个完整的开发流程实例,涵盖了从前端到后端的主要技术,有助于理解J2EE组件间的协同工作方式,加深对J2EE架构的理解,为实际项目开发打下坚实的基础。...
在IT行业中,J2EE(Java 2 Platform, Enterprise Edition)是用于构建企业级应用程序的框架,它由Oracle公司提供并被广泛应用于大型分布式系统、Web应用和后端服务的开发。本实录将深入探讨J2EE开发的全过程,包括但...
J2EE开发全程实录 源码 part1 <br>书名:J2EE开发全程实录; 作者:杨中科主编; 来源:清华大学出版社