我的前台页是这样的:



<

body >

<

form action ="test.action" method ="post" >

测试文件:

< input type ="file" id ="doc" name ="path" value ="" />

<

input type ="submit" value ="提交" onclick ="" />

</

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" />


我当然是用的第二种方法,简单方便.



<? 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 >



呵呵,终于解决了.希望对大家有些帮助.