- 浏览: 235395 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
lwb314:
你的这个是创建的临时的hive表,数据也是通过文件录入进去的, ...
Spark SQL操作Hive数据库 -
yixiaoqi2010:
你好 我的提交上去 总是报错,找不到hive表,可能是哪里 ...
Spark SQL操作Hive数据库 -
bo_hai:
target jvm版本也要选择正确。不能选择太高。2.10对 ...
eclipse开发spark程序配置本地运行
链接地址:http://kevin12.iteye.com/blog/1947631
前段时间做项目时候,用到了struts2下载xml文件,实现的功能时将流程图从数据库导出到客户端(本地),但是文件名称使用的流程名称和时间戳来命名的,当文件名称是中文时候,通过浏览器下载到客户端有时候是乱码的情况,主要考虑了FireFox和IE浏览器。
解决思路是在前台通过javascript判断用户使用的是什么浏览器,通过变量记录下来,并拼接到url上,在后台判断浏览器的类型,通过不同的方式解决乱码问题。
上面的思路很好,也能解决问题,但是将项目打成war包发布到虚拟机中的tomcat中后,在虚拟机中的IE去下载xml文件,还会出现中午乱码问题。百思不得其解啊!!!!
我电脑是win7 64位,浏览器是IE9,而虚拟机中的系统是XP系统,浏览器是IE6并安装了IE8的插件,但是虚拟机中的火狐浏览器没有出现文件名中文时候乱码的情况。
现在通过查阅资料终于解决了虚拟机中IE中文名称乱码问题,下面是部分代码:
上面注释都很详细了,这里就不多说明。下面前台访问action的代码也贴出来如下:
参考解决方法如下:http://article.pchome.net/content-325592.html
链接地址:http://kevin12.iteye.com/blog/1947631
前段时间做项目时候,用到了struts2下载xml文件,实现的功能时将流程图从数据库导出到客户端(本地),但是文件名称使用的流程名称和时间戳来命名的,当文件名称是中文时候,通过浏览器下载到客户端有时候是乱码的情况,主要考虑了FireFox和IE浏览器。
解决思路是在前台通过javascript判断用户使用的是什么浏览器,通过变量记录下来,并拼接到url上,在后台判断浏览器的类型,通过不同的方式解决乱码问题。
上面的思路很好,也能解决问题,但是将项目打成war包发布到虚拟机中的tomcat中后,在虚拟机中的IE去下载xml文件,还会出现中午乱码问题。百思不得其解啊!!!!
我电脑是win7 64位,浏览器是IE9,而虚拟机中的系统是XP系统,浏览器是IE6并安装了IE8的插件,但是虚拟机中的火狐浏览器没有出现文件名中文时候乱码的情况。
现在通过查阅资料终于解决了虚拟机中IE中文名称乱码问题,下面是部分代码:
/** * * @Description: 将流程信息导出为xml文件 * @Auther: lujinyong * @Date: 2013-9-10上午09:55:34 */ public String exportWorkflowXml(){ WebWorkflowMainService workflowMainService = (WebWorkflowMainService) getServiceBean("webWorkflowMainService"); WebWorkflowNodeService workFlowNodeService = (WebWorkflowNodeService) getServiceBean("webWorkflowNodeService"); try { TbBWebWorkflOwMain main = workflowMainService.findByWorkFlowId(returnFlowId); List<TbBWebWorkflOwNode> nodes = workFlowNodeService.findByWorkFlowId(main.getWwmWorkflowId()); Date date = new Date(); Calendar calendar = Calendar.getInstance(); calendar.setTime(date); String time = String.valueOf(calendar.get(Calendar.YEAR)) +String.valueOf(calendar.get(Calendar.MONTH)+1) +String.valueOf(calendar.get(Calendar.DAY_OF_MONTH)) +String.valueOf(calendar.get(Calendar.HOUR_OF_DAY)) +String.valueOf(calendar.get(Calendar.MINUTE)) +String.valueOf(calendar.get(Calendar.SECOND)); //解决文件名中文乱码问题 /*火狐没问题,ie出现了问题 fileName = new String((main.getWwmWorkflowName()+"_"+time+".xml").getBytes("UTF-8"), "ISO8859-1"); */ /*ie没问题,火狐出现问题 */ // fileName = new String((main.getWwmWorkflowName()+"_"+time+".xml").getBytes(), "UTF-8"); // fileName = java.net.URLEncoder.encode(fileName, "UTF-8"); // 这句很重要,不然文件名为乱码 //通过javascript获取浏览器的类型,用url传过来进行判断解决中文乱码 if("Firefox".equalsIgnoreCase(explorerType)){ fileName = new String((main.getWwmWorkflowName()+"_"+time+".xml").getBytes("UTF-8"), "ISO8859-1"); }else{ // fileName = new String((main.getWwmWorkflowName()+"_"+time+".xml").getBytes(), "UTF-8"); // fileName = java.net.URLEncoder.encode(fileName, "UTF-8"); // fileName=fileName.replace("+", "%20"); //解决在虚拟机(系统是XP)IE导出下载文件中文名称乱码的问题 fileName = new String((main.getWwmWorkflowName()+"_"+time+".xml")); getHttpResponse().setCharacterEncoding("UTF-8"); fileName=java.net.URLEncoder.encode(fileName,"UTF-8"); getHttpResponse().setHeader("Content-Disposition", "attachment; filename=" +new String(fileName.getBytes("UTF-8"),"GBK")); } Document document = NodeXmlFactory.sql2Xml(main,nodes); /**将document保存到xml中,保存到客户端 */ xmlStream = new ByteArrayInputStream(document.asXML().getBytes()); xmlStream.close(); /**下面注释的代码可将document写到xml中并保存到服务器*/ // FileOutputStream xmlOut = new FileOutputStream(new File("mysql_back.xml")); // XMLWriter xmlWriter = new XMLWriter(xmlOut,OutputFormat.createPrettyPrint()); // xmlWriter.write(document); // xmlWriter.close(); } catch (Exception e) { e.printStackTrace(); throw new RuntimeException(e); } return "success"; }
上面注释都很详细了,这里就不多说明。下面前台访问action的代码也贴出来如下:
//获取浏览器的类型 var explorerType = ""; if(navigator.userAgent.indexOf("MSIE")>0){ explorerType="IE"; } if(isFirefox=navigator.userAgent.indexOf("Firefox")>0){ explorerType="Firefox"; } location.href = 'exportWorkflowXml.action?returnFlowId='+record.wwmWorkflowId+'&explorerType='+explorerType;
参考解决方法如下:http://article.pchome.net/content-325592.html
链接地址:http://kevin12.iteye.com/blog/1947631
发表评论
-
BigDecimal实现double精度计算
2014-01-07 16:08 1133java中的float 和double类型会发生精度丢失,为了 ... -
could not read column value from result set: NAME5_1_; 流已被关闭
2013-10-11 15:53 2145最近做流程项目数据库是oracle,获取流程处理人时候出现下面 ... -
Dialect does not support identity key generation
2013-10-10 12:01 3004链接网址:http://kevin12.i ... -
java 导出excel到客户端(本地)例子 用poi和servlet实现的
2013-08-22 16:05 5706最近做java的web项目,用到了excel导出到客户端(本地 ... -
jbpm4 timer 定时器事件
2013-08-14 11:36 2021最近学习了jbpm4.X的定时器事件,下面是一个简单的测试,上 ... -
java中的HashSet
2013-08-01 17:48 1355HashSet集合 :不允许有重复的元素并且HashSet中元 ... -
java 中的NaN 和Infinity
2013-07-12 17:58 2937NaN是Not a Number的缩写,即不是一个数字。它不等 ... -
简单的 java 格式化数字用法
2013-07-11 18:42 1595有些时候将后台的数据显示到前台界面上要有一定的格式,比如,保留 ... -
javax.el.ELException: expression factory class not found
2013-06-27 21:43 2444jbpm4web项目部署流程时候出错: 信息: error ... -
<Context path="/files" docBase="D:\upload"></Context>
2013-06-18 11:36 5902发布到tomcat中的项目有 ... -
could not read column value from result set: DBID_; Column 'DBID_' not found.
2013-03-18 12:58 2215最近做项目,将原来项目中关于jbpm4(流程方面)的功能移到一 ... -
java中的时间排序易错点
2013-03-12 11:42 1172最近做流程项目时候发现,流程日志显示的问题: ... -
jbpm4条件节点表达式的解析
2013-03-07 16:31 1977说明:最近做jbpm4流程项目时,在条件节点中用到表达式了,流 ... -
java解析表达式
2013-03-07 16:21 2050说明:最近做jbpm4流程项目时,在条件节点中用到表达式了,流 ... -
org.hibernate.exception.ConstraintViolationException: could not delete: [org.jbp
2013-02-28 11:18 2003用jbpm4做流程时候将sqlserver数据库改为mysql ... -
mysql数据库遇到:org.hibernate.MappingException: No Dialect mapping for JDBC type: -1
2013-02-26 17:31 1707在做web项目时,用到了mysql数据库和ssh架构,登录系统 ... -
struts2中直接访问jsp
2013-02-19 14:58 1404<filter-mapping> ...
相关推荐
### Struts2下载文件中文乱码处理 在Web开发中,使用Struts2框架进行文件下载操作时,经常遇到的一个问题是文件名中的中文字符显示为乱码。这主要是因为浏览器和服务器之间的编码不一致所导致的。为了确保用户能够...
通过上述实践和调试,我们已经成功解决了Struts2框架下中文文件名上传和下载的乱码问题。在遇到类似问题时,可以按照这些步骤进行排查和修复。记住,关键在于正确配置Struts2的拦截器、请求编码以及在处理文件名时...
filename="struts2.txt"`表示下载文件时,保存的文件名为`struts2.txt`。 在Struts2中,使用`Result`类型为`stream`的配置来实现文件下载。在`struts.xml`中,你需要定义一个`action`,并指定一个返回`InputStream`...
### Struts2乱码终极解决办法 #### 一、引言 在开发基于Struts2框架的应用时,经常遇到的一个问题就是中文乱码。这不仅影响用户体验,还可能导致数据处理错误。本文将详细介绍如何彻底解决Struts2中的乱码问题,并...
在Struts2项目中,可以通过修改`struts.properties`文件来指定项目的字符编码方式,从而解决中文乱码问题。具体配置如下: ```properties struts.objectFactory = spring struts.i18n.reload=true #struts.locale=...
本篇文章将详细介绍如何在Struts2中实现文件下载,并解决中文文件名的编码问题。 首先,我们需要在`struts.xml`配置文件中定义一个Action,这个Action将会处理文件下载的请求。例如,我们可以创建一个名为`...
以下将详细介绍如何在Struts 2中实现文件下载,特别是处理中文文件名的问题。 首先,你需要创建一个Action类,例如`FileDownloadAction`,这个类需要包含一个方法来提供文件的输入流。通常,你会有一个属性如`...
这里我们将详细探讨如何解决 Struts 中的中文乱码问题。 一、在 Action 类中的解决方法: 当在 Action 类中遇到中文乱码问题时,可以使用以下代码进行转换。创建一个静态工具类,如 `Chinese`,并定义一个 `...
2. **处理中文文件名**:为了解决中文文件名的乱码问题,可以生成一个基于时间戳的唯一文件名,例如在`getNumberFileName()`方法中。 3. **下载代码**:在Action中,创建一个输入流读取文件,然后通过Servlet的`...
在这个主题中,我们将深入探讨Struts2如何获取参数、解决乱码问题以及实现页面跳转。 首先,让我们来看看Struts2如何获取HTTP请求中的参数。在Struts2中,我们可以使用Action类来接收和处理请求参数。Action类是...
总结来说,解决Struts下的汉字乱码问题,需要从页面、过滤器、服务器配置和Struts核心Servlet等多方面进行设置,确保在整个请求生命周期中,中文字符始终以正确的编码进行处理。这不仅涉及了前端的展示,还涉及到...
首先,我们需要了解Struts文件上传的基本原理。在Struts中,文件上传是通过`Commons FileUpload`库来实现的,它是Apache Commons项目的一部分,专门处理HTTP请求中的多部分数据,包括文件上传。在Struts的ActionForm...
- **解决表单提交中文乱码问题**:通过配置相关的常量来自动解决表单提交数据中的中文乱码问题。 - 例如,设置字符编码常量`struts.i18n.encoding=UTF-8`。 通过以上详细介绍,我们可以看出Struts2框架是一个功能...
### Struts2.1.6解决乱码问题详解 在Web开发中,字符编码问题一直是个头疼的问题,尤其是在处理中文等多字节字符时。Struts2作为一个流行的Java Web框架,同样面临着这样的挑战。本文将深入探讨如何在Struts2.1.6...
Struts2的配置通常存储在一个名为`struts.xml`的XML文件中。这个文件遵循特定的DTD(文档类型定义),如`struts-2.0.dtd`,确保其结构的正确性。 2. **常量配置**: `<constant>`元素用于定义配置文件中的全局...
### Struts2生成XML文件详解 #### 一、引言 在Web开发中,XML(可扩展标记语言)是一种常用的数据交换格式。Struts2框架作为Java Web开发中的一种流行框架,提供了丰富的功能来处理XML数据。本文将详细介绍如何...
解决 Struts 中 ApplicationResources.properties 文件不支持中文问题 Struts 框架中,ApplicationResources.properties 文件是用于存储应用程序的资源文件,如按钮文字、菜单项、提示信息等。然而,默认情况下,...
使用struts2.0上传文件,完全解决了中文乱码问题。运行项目前请先在D盘建立个名tmp的文件夹,实例上传的文件将保存在tmp文件夹中。文件大小限制为15M,该示例蛮完整的,有些架包忘删了导致项目有点大。
本文将深入探讨Struts1中的文件上传,包括单文件上传、多文件上传,以及解决文件名乱码和重名冲突等问题。 1. **文件上传基础** 文件上传是Web应用中常见的一种功能,允许用户从本地电脑上传文件到服务器。在...