前台部分参看:
这里只是将后台的action的处理,使用的struts2,struts,servlet,等原理都差不多,
1、前台刚跳转时的处理:检查前台传的日期和模式不能为NULL,然后将该两个参数直接给前台就可以了。
if (StringUtils.isBlank(this.queryMode))
{
this.queryMode = "day";
}
if (StringUtils.isBlank(this.queryDate))
{
this.queryDate = DateUtil.getDate();
}
else
{
this.queryDate = DateUtil.getAsDate(DateUtil.getAsDate(this.queryDate));
}
SysUtils.getHttpServletRequest().setAttribute("queryMode", queryMode);
SysUtils.getHttpServletRequest().setAttribute("queryDate", queryDate);
return SUCCESS;
2、前台需要读取某范围的数据时,通过数据库数据查询,将该段时间的日历保存到一个xml文件中。
List list = this.commonService.execSQL("select serial,title,start_date,end_date from schedule_info where start_date >= '" + this.queryDate + "'");//这里利用基本的spring和hibernate提供的功能完成了一个包含了基本操作的
service,不喜欢每个东西都搞一个DAO,SERVICE,大部分操作都差不多,这里提供了操作基本的JDBC,HQL等功能,
// SysUtils.getHttpServletRequest().setAttribute("workLogList", list);
//利用dom4j来讲读取的数据生成XML
Document doc = DocumentHelper.createDocument();
Element root = doc.addElement("data");
for (int i = 0; i < list.size(); i++)
{
Element element = root.addElement("event").addAttribute("id", (String) ((Object[]) list.get(i))[0]);
element.addElement("text").addCDATA((String) ((Object[]) list.get(i))[1]);
element.addElement("start_date").setText(DateUtil.formatDate((Date)((Object[]) list.get(i))[2]));
element.addElement("end_date").setText(DateUtil.formatDate((Date)((Object[]) list.get(i))[3]));
}
Random r = new Random();
String str = String.valueOf(r.nextInt(100));
//随机生成该xml文件名
String xml = doc.asXML();
String path = "D:\\java\\tomcat6\\webapps\\eims\\xml\\" + str + ".xml"; //路径问题,
FileOutputStream fos = new FileOutputStream(path);
Writer out = new OutputStreamWriter(fos, "UTF-8");
out.write(xml);
out.flush();
out.close();
前台是利用ajax请求范围的日历东西,这里只是返回生成的xml的相对路径,前台得到该路径后就
可以调用scheduler.load(path); //见一
JSONObject json = new JSONObject();
json.put("result", "ok");
json.put("path", "xml" + "/" + str + ".xml");
SysUtils.getHttpServletRequest().setAttribute("jsonToString", json.toString());
return Constants.json;
return Constants.json;是指跳转的链接,这里是跳转得到一个jsp文件中,该文件的内容如下:
<%@page contentType="text/html; charset=UTF-8"%>
<%@page import="com.app.utils.SysUtils"%>
<%
request.setAttribute("decorator", "none");
response.setHeader("Cache-Control","no-cache"); //HTTP 1.1
response.setHeader("Pragma","no-cache"); //HTTP 1.0
response.setDateHeader ("Expires", 0); //prevents caching at the proxy server
//System.out.print(SysUtils.getHttpServletRequest().getAttribute("jsonToString"));
out.write(SysUtils.getHttpServletRequest().getAttribute("jsonToString").toString());
//System.out.println(SysUtils.getHttpServletRequest().getAttribute("jsonToString").toString());
%>
<%--
<s:property value="%{jsonToString}" escape="false"/>
--%>
其他的例如保存,删除等同其他的处理一致,
因为信息的编辑是自己定义的窗口,所以想怎么安排就怎么安排了。