`
tangxininjava
  • 浏览: 94517 次
  • 性别: Icon_minigender_1
  • 来自: 遂宁
社区版块
存档分类
最新评论

J2EE开发练手(第一章)

    博客分类:
  • J2EE
 
阅读更多



 

 

根据类图建立表

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>

 

    效果图如下:

   

    

 

   
 

   
 

  • 大小: 87.1 KB
  • 大小: 66.9 KB
  • 大小: 27.8 KB
  • 大小: 30.3 KB
  • 大小: 22.4 KB
  • 大小: 50.9 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics