package bookstore;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;
import org.apache.struts.action.ActionMessages;
import org.apache.struts.upload.FormFile;
import org.hibernate.Query;
import org.hibernate.Session;
import bookstore.database.Bookinfo;
import bookstore.database.HibernateUtil;
public class SaveBookAction extends Action {
public ActionForward execute(ActionMapping mapping, ActionForm srcForm,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
ActionMessages errors = new ActionMessages();
Bookinfo book = new Bookinfo();
EditBookForm form = (EditBookForm) srcForm;
Session dbSession = HibernateUtil.currentSession();
if (form.getId().intValue() != 0) {
Query query = dbSession
.createQuery("from Bookinfo as b where b.id=:id");
query.setInteger("id", form.getId().intValue());
HibernateUtil.beginTransaction();
List result = query.list();
HibernateUtil.commitTransaction();
if (result.size() != 0) {
book = (Bookinfo) result.get(0);
}
}
book.setBookName(new String(form.getBookName().getBytes("ISO-8859-1"),
"GB2312"));
book.setIsbn("111-222-333");
book.setWriter(new String(form.getWriter().getBytes("ISO-8859-1"),
"GB2312"));
book.setIntro(new String(form.getIntro().getBytes("ISO-8859-1"),
"GB2312"));
book.setPublisher(new String(
form.getPublisher().getBytes("ISO-8859-1"), "GB2312"));
book.setPrice(form.getPrice());
book.setRemaining(form.getRemaining());
book.setDate(new Date(System.currentTimeMillis()));
FormFile file = form.getPicture();
if (!file.getFileName().equals("")) {
// �ж��ļ�)չ���Ƿ���ȷ
String[] fileNameSpt = file.getFileName().split("\\.");
String ext = fileNameSpt[fileNameSpt.length - 1].toLowerCase();
if (!ext.equals("gif") && !ext.equals("jpg")) {
errors.add("wrongPic", new ActionMessage("savebook.wrongFile"));
this.saveErrors(request, errors);
return mapping.findForward("errorPage");
}
// �Ƿ�ָ���˺Ϸ����ļ���
InputStream is = file.getInputStream();
if (is == null) {
errors
.add("wrongPic", new ActionMessage(
"savebook.invalidPic"));
this.saveErrors(request, errors);
return mapping.findForward("errorPage");
}
// �Ե�ǰϵͳʱ���������Ϊ�ļ����Ա�������
String fileName = Long.toString(System.currentTimeMillis()) + "."
+ ext;
String serverFile = servlet.getServletContext().getRealPath("/") + "/upload/"
+ fileName;
OutputStream os = new FileOutputStream(serverFile);
byte[] buf = new byte[1024];
while (is.available() != 0) {
is.read(buf);
os.write(buf);
}
book.setPicture(fileName);
}
Session session = HibernateUtil.currentSession();
HibernateUtil.beginTransaction();
session.saveOrUpdate(book);
HibernateUtil.commitTransaction();
return mapping.findForward("searchBook");
}
}
![avatar](https://profile-avatar.csdnimg.cn/default.jpg!1)
yxkfw
- 粉丝: 82
- 资源: 2万+
最新资源
- 被忽视的成本:中国城市扩张导致的生态系统服务损失从三耦合的角度来看
- 永磁同步电机PMSM参数辨识的粒子群优化算法实现流程解析与案例探索,基于粒子群优化算法的PMSM参数精准辨识与迭代更新策略,基于粒子群优化算法的永磁同步电机PMSM参数辨识 关键词:永磁同步电机 粒子
- 揭示城市扩张对植被碳的影响封存能力-以长江经济带为例(软件翻译)
- 双馈风电机组与同步发电机组四机两区域Simulink仿真建模及风光储联合调频与多种控制策略结合混合储能技术研究,双馈风电机组与同步发电机组四机两区域Simulink仿真建模及风光储联合调频控制策略,混
- 电气安装工 初级工.pdf
- 清华大学:普通人如何抓住DeepSeek红利
- Swift 编程语言的入门教程,适合零基础或有一定编程经验的读者快速上手
- 清华出品(104页)DeepSeek从入门到精通
- DeepSeek指导手册(24页)
- 研究机翼在不同速度下产生的噪音和性能表现
- JimuFlow RPA工具MacOS版v1.0.0
- MATLAB滚动轴承故障机理建模与仿真分析:基于ODE45的数值计算与多类型故障诊断预测研究,MATLAB轴承动力学模拟:滚动轴承故障机理建模与数值计算,多故障类型模拟及数据分析报告(含故障类型识别与
- 基于改进Relief算法的特征选取与关联向量机在短期负荷预测中的Matlab应用复现,基于改进Relief算法的特征选取与关联向量机在短期负荷预测中的实践(Matlab复现),相关向量机和特征选取技术
- COMSOL模拟技术揭秘:金属合金凝固过程及连铸工艺精确分析-相场流场与温度场的综合运用探究坯壳厚度计算,金属合金凝固与连铸过程数值模拟:相场流场温度场分析下的坯壳厚度计算,comsol数值模拟
- JimuFlow RPA工具Ubuntu版v1.0.0
- 煤层瓦斯渗透扩散与煤体孔隙裂隙二重介质特性研究-基于修正的P-M渗透率模型与气固耦合效应的模拟分析,煤层瓦斯渗透扩散的深部采煤模型研究:建立孔隙裂隙二重介质特性P-M渗透率模型与气固耦合模型的解析
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback-tip](https://img-home.csdnimg.cn/images/20220527035111.png)