目录
1. Web端工程搭建 2
2. 反向工程生成数据模型 6
3.创建SysMenuDao,用于操作菜单栏 7
4.编写newIndex.jsp 8
5. 在WebAction中增加index方法,显示左侧菜单 14
6. 在struts.xml中进行配置 16
7. Address的DAO接口 18
8.Address的DAO接口实现 18
9.编写WebAction,实现分页显示所有地址功能 20
10.在struts.xml中进行配置 22
11.编写addresslist.jsp,显示所有地址 22
12.实现修改地址,编写WebAction 28
13.实现修改地址,先编写addresslist.jsp的跳转 29
写一个方法用于跳转到oneAddress,并且把addressId传给action 29
14.实现修改地址,编写updateAddress.jsp 30
15.实现新增地址,编写WebAction 34
16.实现新增地址,编写addAddress.jsp 35
1. Web端工程搭建
1.1 新建SDSYwZJF项目
1.2 添加SSH库包支持
1.3 添加spring支持
1.4 在DB Browser视图中添加数据库连接
首先将mysql-connector-java-5.0.8.jar包复制到WEB-INF|lib目录下,MyEclipse自动将该jar包添加到Web App Libraries引用目录下。
1.5 添加struts支持
1.6 在src文件夹下新建struts.properties文件
在该文件中,添加:struts.objectFactory=spring
1.7 添加Hibernate支持以及数据库连接
1.8 测试网页是否成功运行
2. 反向工程生成数据模型
这个数据库里的所有表都是单表,表之间没有外键,所以反向address和sys_menu表即可
此时遇到错误An internal error occurred during: "Generating Artifacts". java.lang.NullPointerException
百度后解决
反向后生成这几个文件
同时applicationContext中生成
<property name="mappingResources">
<list>
<value>web/model/Address.hbm.xml</value>
<value>web/model/SysMenu.hbm.xml</value>
</list>
</property>
3.创建SysMenuDao,用于操作菜单栏
public interface SysMenuDao {
List<String> findPmenu(); //查找父菜单,通过group by 查找父菜单的名称
List<SysMenu> findSysMenu();//菜单栏所有的操作对象
}
新建SysMenuDaoImp实现SysMenuDao
public class SysMenuDaoImp extends HibernateDaoSupport implements SysMenuDao {
@Override
public List<SysMenu> findSysMenu() {
// TODO Auto-generated method stub
List<SysMenu> list=this.getHibernateTemplate().find("from SysMenu order by fsign,sign");
return list;
}
@Override
public List<String> findPmenu() {
List<SysMenu> list=this.getHibernateTemplate().find("from SysMenu group by name order by fsign");
List<String> listm=new ArrayList<String>();
if(list!=null&&list.size()>0){
for(int i=0;i<list.size();i++){
listm.add(list.get(i).getName());
}
}
return listm;
}
}
4.编写newIndex.jsp
class和id 在css文件中的使用区别
<html lang="zh"> 指定html的字符集
<meta charset="UTF-8" /> 指定编码
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
在移动设备上显示时控制他的长宽比例
导入的link
<link rel="stylesheet" href="css/bootstrap.min.css" /> 标准jquery库
<link rel="stylesheet" href="css/matrix-style.css" /> 定义 id="sidebar" id="content" id=”header” 的样式
<link rel="stylesheet" href="css/matrix-media.css" /> 定义 id="sidebar"
id="content" id=”header”的背景色
<link href="font-awesome/css/font-awesome.css" rel="stylesheet" />
定义icon-check icon-key icon-lock icon-caret-right 图标选择组件
<script src="js/jquery.min.js"></script>
<script src="js/excanvas.min.js"></script>
<script src="js/jquery.ui.custom.js"></script>
使用JQuery要导入的js文件,用于控制菜单栏样式
var url="index",跳转到index.action
data是JSONObject对象s中的一个数据对象,步骤5会往s对象里放数据
<script type="text/javascript">
$(document).ready(function(){
var url="index";
login(url);
});
function login(url){
$.ajax({
url: url,
type: "Get",
async: false ,
dataType: "json",
success: function(data) {
for(var i=0;i<data.data.length;i++){
var str="<li class='submenu'><a herf='#'><span>"+data.data[i].name+"</span></a><ul>"
for(var j=0;j<data.data[i].list.length;j++){
str+='<li><a class="menu_a" link="'+data.data[i].list[j].url+'"> '+data.data[i].list[j].functions+'</a></li>'
}
str+="</ul></li>" 拼凑jsp代码
document.getElementById("index").innerHTML+=str;将代码放到页面中 index位置
}
}
});
}
css class 功能描述 css文件
navbar 基础导航条 css/bootstrap.min.css
navbar-inverse 指定导航条组件为黑色主题 css/bootstrap.min.css
nav nav表示导航标签 css/bootstrap.min.css
dropdown 简单的下拉列表插件 css/bootstrap.min.css
dropdown-toggle 按钮右侧的圆角 css/bootstrap.min.css
text 文本样式 css/bootstrap.min.css
dropdown-menu 下拉菜单 css/bootstrap.min.css
icon-check UI图标 font-awesome/css/font-awesome.css
icon-key UI图标 font-awesome/css/font-awesome.css
submenu 下拉菜单 css/bootstrap.min.css
icon-lock 锁图标选择组件 font-awesome/css/font-awesome.css
icon-caret-right 右箭头图标选择组件 font-awesome/css/font-awesome.css
tip-bottom 鼠标悬停Tip js/matrix.js 这是一个js事件
icon-home 房子图标 font-awesome/css/font-awesome.css
<div id="header">
<h1>
<a>管理平台</a>
</h1>
</div>
<!--top-Header-menu-->
<div id="user-nav" class="navbar navbar-inverse">
<ul class="nav">
<li class="dropdown" id="profile-messages"><a title="" href="#"
data-toggle="dropdown" data-target="#profile-messages"
class="dropdown-toggle"> <i class="icon icon-user"></i> <span
class="text">欢迎你,<%=loginname%>
</span> <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li><a class="menu_a" link="allActivity.action"><i
class="icon-check"></i> 我的发布</a></li>
<li class="divider"></li>
<li><a class="menu_a" οnclick="unLogin(this)"><i
class="icon-key"></i> 退出系统</a></li>
</ul></li>
</ul>
</div>
<