移动应用实战(移动OA)之四_会议室管理之一

  移动应用实战(移动OA)之四_会议室管理之一


  会议室管理是OA系统的常用功能之一,公司里有多个会议室,员工要使用每个会议室前需要预定。

  会议室有“查看已有预定”和“预定会议室”两项功能。


  当点击“会议室”功能时,首先显示会议室的列表,界面如下:



  一、后台部分

  后台代码放在原OA项目里,在原OA项目中创建如下包结构:



  数据库如下:



  1. 实体类通过Hibernate反向工程生成。

  2. MeetingRoomDao接口:

public interface MeetingRoomDao {
	List<MeetingRoom> getAll();
}
  3. MeetingRoomBiz接口:

public interface MeetingRoomBiz {
	List<MeetingRoom> getAll();
}
  4. 请自行编写Dao和Biz的实现类。

  5. MeetingRoomAction类:

@ParentPackage("json-default")
@Results({ @Result(name = "getMeetingRoomAJAXOK", type = "json", params = {
		"root", "meetingRoomList", "callbackParameter", "callback" }) })
public class MeetingRoomAction extends ActionSupport {
	private static final long serialVersionUID = 1L;
	@Resource
	private MeetingRoomBiz meetingRoomBiz;
	private List<MeetingRoom> meetingRoomList;

	@Action(value = "getMeetingRoomAJAX")
	public String getMeetingRoomAJAX() {
		meetingRoomList = meetingRoomBiz.getAll();
		return "getMeetingRoomAJAXOK";
	}

	// getter & setter

	public List<MeetingRoom> getMeetingRoomList() {
		return meetingRoomList;
	}

	public void setMeetingRoomList(List<MeetingRoom> meetingRoomList) {
		this.meetingRoomList = meetingRoomList;
	}
}
  在Action类中,定义了meetingRoomList变量,用于保存会议室列表。

  并且在@Result定义中,指定params参数:"root"的值为"meetingRoomList",表示只将此变量生成json发给客户端。


  另外,找三张会议室的图片,放在这个目录里:



  二、前台部分

  注意,前台部分的网站是独立于刚才的OA项目的,不要把前台网站的代码放在OA项目里,因为前台网站以后会放在手机端。

  前台页面的代码如下:

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.3.2/jquery.mobile-1.3.2.min.css">
<script src="http://code.jquery.com/jquery-1.8.3.min.js"></script>
<script src="http://code.jquery.com/mobile/1.3.2/jquery.mobile-1.3.2.min.js"></script>
<script>
$(document).ready(function() {
	$("#hys").on("tap",function(){
		$.getJSON("http://localhost:8080/oa/getMeetingRoomAJAX.action?callback=?",
			{},
			function(data) {
				var html = "";
				$.each(data, function(i, item) {
					html += "<li><a href='#'><img src='http://localhost:8080/oa/manage/images/" + item.pic + "' />";
					html += "<h2>" + item.name + "</h2>";
					html += "<p>" + item.desc + "</p></a></li>";
				});
				$("#meetingRoomList").html(html);
				$("#meetingRoomList").listview("refresh");
			}
		);
	});
});
</script>
<style type="text/css">
.dark {
	color: #CCC;
}
</style>
</head>

<body>

<div data-role="page">

  <div data-role="header" data-position="fixed" data-theme="b">
  	<a href="#" data-role="button" data-icon="arrow-l" data-iconpos="notext">首页</a>
    <h1>个人信息</h1>
  </div>

  <div data-role="content" data-theme="d">
    <ul id="meetingRoomList" data-role="listview" data-inset="true">
    </ul>
  </div>

  <div data-role="footer" data-position="fixed" data-theme="c">
    <div data-role="navbar">
      <ul>
        <li><a id="gg" href="gg.html"><img src="images/gg.png" /><br />公告</a></li>
        <li><a id="sp" href="sp.html"><img src="images/sp.png" /><br />审批</a></li>
        <li><a id="qd" href="qd.html"><img src="images/qd.png" /><br />签到</a></li>
        <li><a id="hys" href="hys.html"><img src="images/hys.png" /><br />会议室</a></li>
        <li><a id="grxx" href="grxx.html" class="ui-btn-active ui-state-persist"><img src="images/grxx.png" /><br />个人信息</a></li>
      </ul>
    </div>
  </div>

</div>

</body>
</html>
  重点解释一下jquery脚本:

<script>
$(document).ready(function() {
	$("#hys").on("tap",function(){ // 点击会议室按钮,执行ajax功能
		$.getJSON("http://localhost:8080/oa/getMeetingRoomAJAX.action?callback=?",
			{},
			function(data) { // 这时回调函数得到的是一个list
				var html = "";
				$.each(data, function(i, item) { // 使用jquery的each方法遍历list,参数i为序号,item为遍历对象
					html += "<li><a href='#'><img src='http://localhost:8080/oa/manage/images/" + item.pic + "' />";
					html += "<h2>" + item.name + "</h2>";
					html += "<p>" + item.desc + "</p></a></li>";
				});
				$("#meetingRoomList").html(html);
				$("#meetingRoomList").listview("refresh");
			}
		);
	});
});
</script>
  这里的布局参考的是: jquery mobile的列表视图

  最后一行:  

$("#meetingRoomList").listview("refresh"); //用于刷新列表视图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值