温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

SaveDataPage和SaveFilePage的区别是什么

发布时间:2021-07-30 17:12:51 来源:亿速云 阅读:168 作者:Leah 栏目:云计算

这篇文章将为大家详细讲解有关SaveDataPage和SaveFilePage的区别是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

一.SaveFilePage和SaveDataPage的区别:

  • SaveFilePage:指定的页面可接受二进制文件流、Form域,直接保存修改后的文件。

  • SaveDataPage:指定的页面可接收页面提交的Word数据区域、Excel表格数据、Form域。

  • SaveFilePage:指定的页面只能创建FileServer对象。

  • SaveDataPage:指定的页面只能创建PageOffice.ExcelReader或PageOffice.WordReader命名空间下的对象。

  • SaveFilePage的使用:只需要保存修改后的文档,而不需要提取文档内容时。

  • SaveDataPage的使用:需要提交文档内容或用户输入的文档内容时。

二.既保存数据,又保存文档

以Java开发语言在线处理Word文档为例。
打开文件的代码:

    PageOfficeCtrl poCtrl = new PageOfficeCtrl(request);
	poCtrl.setServerPage(request.getContextPath()+"/poserver.zz");
     …….
    poCtrl.setSaveDataPage("SaveData.jsp");//设置保存数据的页面
    poCtrl.setSaveFilePage("SaveFile.jsp"); //设置保存文件的页面
	//打开Word文档,要保存数据,此处的打开文档的模式必须是docSubmitForm模式.
	poCtrl.webOpen("doc/test.doc", OpenModeType.docSubmitForm, "张佚名");

SaveData.jsp获取数据的代码:

    WordDocument doc = new WordDocument(request, response);
	// 获取提交的数值
	DataRegion dataUserName = doc.openDataRegion("PO_userName");
	DataRegion dataDeptName = doc.openDataRegion("PO_deptName");
	……		
	doc.close();

SaveFile.jsp保存文档的代码:

    FileSaver fs=new FileSaver(request,response);
    fs.saveToFile(request.getRealPath("doc/")+"/"+fs.getFileName());
    fs.close();

注:该示例的完整代码和详细演示请参考Samples4的基本功能
一、28、既保存Word文档中指定位置的数据,又保存整篇文档(以Word为例)

SaveDataPage和SaveFilePage的区别是什么

三.保存文档和数据的事务实现

代码到这里,可能我们会想,要是数据保存失败了PageOffice还会保存文档吗?PageOffice是先保存数据呢?还是先保存文档呢?能不能用事务控制来解决这一问题呢?下面我们来谈谈PageOffice的保存数据和保存文档的机制。
PageOffice的保存机制是先保存数据,再保存文件,如果用事务来控制的话并不能实现,原因是处理保存数据的页面和保存文档的页面是两个servlet,或者也可以说是两个不同的action,这并不符合事务的机制,但是我们可以模拟实现一个“事务”,例如在数据库中设置一个字段来标识这一状态,假如用flag来表示,初始值也为false,当数据保存成功时flag为true,保存失败是flag为false, 然后我们再到保存文件的页面根据flag的值判断数据是否保存成功,进而判断是否保存文件。

关于SaveDataPage和SaveFilePage的区别是什么就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI