package com.deng.web.action.base;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import net.sf.json.JsonConfig;
import org.apache.struts2.ServletActionContext;
import org.hibernate.criterion.DetachedCriteria;
import com.deng.domain.PageBean;
import com.deng.utils.DateJsonValueProcessor;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
public class BaseAction<T> extends ActionSupport implements ModelDriven<T> {
private static final long serialVersionUID = 6788265612879264198L;
// 定义模型对象
protected T model;
// 返回模型对象
public T getModel() {
return model;
}
protected PageBean pageBean = new PageBean();
private int page;
private int rows;
public void setPage(int page) {
this.page = page;
}
public void setRows(int rows) {
this.rows = rows;
}
DetachedCriteria detachedCriteria = null;
public BaseAction() {
// 获得父类的类型(BaseAction)
ParameterizedType genericSuperclass = (ParameterizedType) this
.getClass().getGenericSuperclass();
// 获得BaseAction上声明的泛型数组
Type[] actualTypeArguments = genericSuperclass.getActualTypeArguments();
// 实体类型
Class<T> entityClass = (Class<T>) actualTypeArguments[0];
detachedCriteria = DetachedCriteria.forClass(entityClass);
pageBean.setDetachedCriteria(detachedCriteria);
// 通过反射创建model对象
try {
model = entityClass.newInstance();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
/**
* 将PageBean对象转为json数据返回
*
* @param pageBean
* @param excludes
*/
public void writePageBean2Json(PageBean pageBean, String[] excludes) {
JsonConfig jsonConfig = new JsonConfig();
jsonConfig.setExcludes(excludes);
jsonConfig.setIgnoreDefaultExcludes(false);
jsonConfig.registerJsonValueProcessor(java.sql.Date.class,
new DateJsonValueProcessor("yyyy-MM-dd"));
jsonConfig.registerJsonValueProcessor(java.sql.Timestamp.class,
new DateJsonValueProcessor("yyyy-MM-dd HH:mm:ss"));
//将Date格式的时间对象转为"2016-03-25"格式的字符串
jsonConfig.registerJsonValueProcessor(java.util.Date.class,
new DateJsonValueProcessor("yyyy-MM-dd"));
String json = JSONObject.fromObject(pageBean, jsonConfig).toString();
System.out.println(json);
// 使用输出流输出json数据到客户端
ServletActionContext.getResponse().setContentType(
"text/json;charset=UTF-8");
try {
ServletActionContext.getResponse().getWriter().print(json);
} catch (IOException e) {
e.printStackTrace();
}
}
public void writePageBean2JsonToSession(PageBean pageBean, String[] excludes) {
// 将PageBean对象转为json数据返回
JsonConfig jsonConfig = new JsonConfig();
jsonConfig.setExcludes(excludes);
jsonConfig.setIgnoreDefaultExcludes(false);
jsonConfig.registerJsonValueProcessor(java.sql.Date.class,
new DateJsonValueProcessor("yyyy-MM-dd"));
jsonConfig.registerJsonValueProcessor(java.sql.Timestamp.class,
new DateJsonValueProcessor("yyyy-MM-dd hh:mm:ss"));
//将Date格式的时间对象转为"2016-03-25"格式的字符串
jsonConfig.registerJsonValueProcessor(java.util.Date.class,
new DateJsonValueProcessor("yyyy-MM-dd"));
String json = JSONObject.fromObject(pageBean, jsonConfig).toString();
System.out.println(json);
try {
HttpServletRequest request = ServletActionContext.getRequest();
request.setCharacterEncoding("UTF-8");
HttpSession session = request.getSession();
session.setAttribute("jsonData", json);
} catch (UnsupportedEncodingException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
/**
* 将任意对象转为json数据返回给前台
*
* @param object
* @param excludes
*/
public void writeObject2Json(Object object, String[] excludes) {
JsonConfig jsonConfig = new JsonConfig();
jsonConfig.setExcludes(excludes);
jsonConfig.setIgnoreDefaultExcludes(false);
jsonConfig.registerJsonValueProcessor(java.sql.Date.class,
new DateJsonValueProcessor("yyyy-MM-dd"));
jsonConfig.registerJsonValueProcessor(java.sql.Timestamp.class,
new DateJsonValueProcessor("yyyy-MM-dd hh:mm:ss"));
//将Date格式的时间对象转为"2016-03-25"格式的字符串
jsonConfig.registerJsonValueProcessor(java.util.Date.class,
new DateJsonValueProcessor("yyyy-MM-dd"));
String json = JSONObject.fromObject(object, jsonConfig).toString();
System.out.println(json);
// 使用输出流输出json数据到客户端
ServletActionContext.getResponse().setContentType(
"text/json;charset=UTF-8");
try {
ServletActionContext.getResponse().getWriter().print(json);
} catch (IOException e) {
e.printStackTrace();
}
}
public void writePageBean2Json(List list, String[] excludes) {
JsonConfig jsonConfig = new JsonConfig();
jsonConfig.setExcludes(excludes);
String json = JSONArray.fromObject(list, jsonConfig).toString();
System.out.println(json);
// 使用输出流输出json数据到客户端
ServletActionContext.getResponse().setContentType(
"text/json;charset=UTF-8");
try {
ServletActionContext.getResponse().getWriter().print(json);
} catch (IOException e) {
e.printStackTrace();
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
MF00955-Java酒窖管理系统源码.zip
共544个文件
png:133个
css:131个
js:61个
需积分: 5 0 下载量 63 浏览量
2023-09-18
18:05:27
上传
评论 1
收藏 19.82MB ZIP 举报
温馨提示
MF00955-Java酒窖管理系统源码
资源推荐
资源详情
资源评论
收起资源包目录
MF00955-Java酒窖管理系统源码.zip (544个子文件)
BaseAction.class 6KB
BaseDaoImpl.class 5KB
Wine.class 4KB
UserAction.class 4KB
WineServiceImpl.class 4KB
WineAction.class 4KB
WinesaveDaoImpl.class 4KB
WinesaveServiceImpl.class 3KB
WinesaveAction.class 3KB
Customer.class 3KB
Winesave.class 3KB
SaleServiceImpl.class 3KB
User.class 3KB
ImportServiceImpl.class 3KB
CustomerDaoImpl.class 3KB
CustomerServiceImpl.class 3KB
CustomerAction.class 3KB
UserServiceImpl.class 2KB
SaleAction.class 2KB
ImportAction.class 2KB
Import.class 2KB
Sale.class 2KB
MyTest.class 2KB
MD5Utils.class 1KB
PageBean.class 1KB
UserDaoImpl.class 1KB
DateJsonValueProcessor.class 1KB
LoginInterceptor.class 1KB
MyException.class 943B
IBaseDao.class 773B
WMContext.class 747B
IWineService.class 590B
ImportDaoImpl.class 545B
ISaleService.class 540B
WineDaoImpl.class 533B
SaleDaoImpl.class 533B
IImportService.class 493B
IWinesaveDao.class 456B
IWinesaveService.class 427B
IUserService.class 412B
ICustomerService.class 405B
IUserDao.class 316B
ICustomerDao.class 307B
IImportDao.class 243B
ISaleDao.class 237B
IWineDao.class 237B
.classpath 532B
org.eclipse.wst.common.component 559B
org.eclipse.wst.jsdt.ui.superType.container 49B
easyui.css 44KB
easyui.css 44KB
easyui.css 43KB
easyui.css 43KB
easyui.css 40KB
style.css 23KB
tabs.css 8KB
tabs.css 8KB
tabs.css 8KB
tabs.css 8KB
style_grey.css 7KB
zTreeStyle.css 6KB
tabs.css 6KB
datagrid.css 5KB
datagrid.css 5KB
datagrid.css 5KB
datagrid.css 5KB
datagrid.css 4KB
calendar.css 3KB
calendar.css 3KB
calendar.css 3KB
calendar.css 3KB
calendar.css 3KB
tree.css 3KB
tree.css 3KB
tree.css 3KB
tree.css 3KB
tree.css 3KB
default.css 3KB
linkbutton.css 3KB
linkbutton.css 3KB
linkbutton.css 3KB
panel.css 3KB
panel.css 3KB
panel.css 2KB
panel.css 2KB
linkbutton.css 2KB
linkbutton.css 2KB
panel.css 2KB
menu.css 2KB
menu.css 2KB
menu.css 2KB
menu.css 2KB
menu.css 2KB
window.css 2KB
window.css 2KB
window.css 2KB
window.css 2KB
layout.css 2KB
layout.css 2KB
layout.css 2KB
共 544 条
- 1
- 2
- 3
- 4
- 5
- 6
资源评论
jane9872
- 粉丝: 95
- 资源: 7751
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功