毕业论文开发语言企业开发JAVA技术.NET技术WEB开发Linux/Unix数据库技术Windows平台移动平台嵌入式论文范文英语论文
您现在的位置: 毕业论文 >> java技术 >> 正文

struts2路径问题中文图片显示失败问题

更新时间:2014-6-5:  来源:毕业论文

在学struts2的过程中,碰到了两个小问题
1(最主要的问题)在页面中显示以中文命名的图片时失败,如下,我上传一张图片(我.png)到服务器后跳转并显示
<body>
    上传成功!<br/>
    文件标题:<s:property value=" + title"/><br/>
    文件为:<img src="<s:property value="'uploadFiles/'
        + uploadFileName"/>"/><br/>
    <s:debug/>
</body>

注:debug发现action中uploadFileName属性是中文,服务器里保存的也是中文,就是显示不出来(换成英文可以显示),猜测struts2内部解码过程出问题,但不知如何下手~~

2.(其实这个应该不算问题)在做上传的时候,文件保存在tomcat项目的文件夹uploadFiles里,
即webapp/XXX项目/uploadFiles/下,这个文件夹是我手动创建的,每次只要重启tomcat文件夹就
丢失,就又得创建一次,有没有什么办法在eclipse里项目编写的时候创建uploadFiles文件
夹,然后一起发布到tomcat下,这样省去每次新建一次文件夹
这很正常,因为你上传到服务器之后服务器会把你上传的文件重新命名的。这个你可以在你服务器上传文件的文件夹中找到那个图片,就明白了。
其实就是使用之前先转换下。
JSP开始的地方:
<%!
public static String HTMLUnicodeToString(String str) {
        Pattern pattern = Pattern.compile("(?:&#(\\d{4,5});?)");
        Matcher matcher = pattern.matcher(str);
        while (matcher.find()) {
            str = matcher.replaceAll(String.valueOf((char) Integer.parseInt(matcher.group(1), 10)));
        }
        return str;
    }
%>

后面:
<% uploadFileName = HTMLUnicodeToString(uploadFileName) %>
文件为:<img src="<s:property value="'uploadFiles/' + uploadFileName"/>"/><br/>

其实最好定义成一个工具类,而不是直接定义在JSP中。。。
唉,问题关键在于,比如能保证浏览器地址栏直接输入:
   http://localhost:8080/load/uploadFiles/曾.png
是可访问的,现在继续回到这个问题来研究。


你用的是Tomcat,那么请检查下conf\server.xml这个配置文件,有没有这样一句话:
  <Connector port="8080" protocol="HTTP/1.1" URIEncoding="UTF-8" connectionTimeout="1000"
如果没有URIEncoding="UTF-8",请把它加上去;然后重启服务,再用全路径直接浏览器试试看

设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©youerw.com 优尔论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。