我的前台页是这样的:
<body> <form action="test.action" method="post"> 测试文件:<input type="file" id="doc" name="path" value=""/> <input type="submit" value="提交" οnclick=""/> </form> </body>
Action:
package com; import java.io.UnsupportedEncodingException; import com.opensymphony.xwork2.ActionSupport; @SuppressWarnings("serial") public class TestAction extends ActionSupport { private String path; public String getPath() { return path; } public void setPath(String path) { this.path = path; } public String test() throws Exception { System.out.println(path.replace("\\", "\\\\")); return SUCCESS; }}
刚开始的时候一选中文路径就输出???.后来终于找到解决方法.在struts.xml文件中加上:为了解决form提交到action中的中文参数乱码问题。 1.在struts2-core-2.0.0-SNAPSHOT.jar包中路径为struts2-core-2.0.6\org\apache \struts2有一个default.properties 文件,把struts.i18n.encoding=UTF-8改为
struts.i18n.encoding=GBK
2.或者在struts.xml文件内添加常量:
<constant name="struts.i18n.encoding" value="GBK"/>
我设置value="GB2312"
我当然是用的第二种方法,简单方便. <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <constant name="struts.i18n.encoding" value="GBK"/> <package name="com" extends="struts-default"> <action name="test" class="com.TestAction" method="test"> <result>/ok.jsp</result> </action> </package> </struts>
呵呵,终于解决了.希望对大家有些帮助.
http://www.blogjava.net/supercrsky/articles/170549.html