Action接到值为乱码, 而Action执行页面显示正常,该如解决此问题? 页面是UTF-8格式,工程数据库都是此格式
我下面Action的println为:=============================================С??
如正常打印语句为:=============================================小白
页面传值;
<td><s:url id="topageEditAction"
action="topageEditAction.action">
<s:param name="name" value="%{name}" />
</s:url> <s:a href="%{topageEditAction}">修改学生信息</s:a>
Action:
package action.student;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;import org.apache.struts2.ServletActionContext;import model.Student;import com.opensymphony.xwork2.ActionSupport;
import common.Base;
public class TopageEditAction extends ActionSupport {
public String name;
        ...... public String getName() {
return name;
} public void setName(String name) {
this.name = name;
}
        ......

@Override
public String execute() throws Exception {
System.out.println("============================================="+name);
// 创建空BASE
Base b = new Base();
// 通过username得到相应实例
Student student = b.getStudent().get(name); email = student.getEmail();
                ......
return "topageEdit";
}}

解决方案 »

  1.   

    name1=name.getBytes("iso-8859-1"),"utf-8"; System.out.println("============================================="+name1); 
      

  2.   

    用经典编码过滤器吧
    org.springframework.web.filter.CharacterEncodingFilter
      

  3.   

    使用spring的前提下在web.xml中配置
    <filter>
    <filter-name>encodingFilter</filter-name>
    <filter-class>
    org.springframework.web.filter.CharacterEncodingFilter
    </filter-class>
    <init-param>
    <param-name>encoding</param-name>
    <param-value>UTF-8</param-value>
    </init-param>
    <init-param>
    <param-name>forceEncoding</param-name>
    <param-value>true</param-value>
    </init-param>
    </filter>并将对应的后缀加入filter-mapping,例如
    <filter-mapping>
    <filter-name>encodingFilter</filter-name>
    <url-pattern>*.do</url-pattern>
    </filter-mapping>
      

  4.   

    怎么用filter的?我在web.xml里面加了你写的那段, 也有:
    <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>
       classpath*:applicationContext.xml
    </param-value>
    </context-param>
    <listener>
        <listener-class>
            org.springframework.web.context.ContextLoaderListener
        </listener-class>
    </listener>
    还是不行, 报错还是一样, 到网上找的, 不但有web.xml的品配置还有个过滤类, 就是用上去好像也没用(可能是我不知道怎么用)。
      

  5.   

    在页面上把要传过来的参数前加上encodeURI(要传的中文变量)