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>