regeister.jsp<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="userRegister" method="get">
用户名字<input type="text" name="user.name"/><br/>
邮箱账户<input type="text" name="user.email"/><br/>
密码<input type="password" name="user.password"/><br/>
确认密码<input type="password" name="password2"/><br/>
<button type="submit" >提交</button>
</form>
</body>
</html>然后我在】 userAction.java中总是接收到乱码
Component(value = "userAction")
public class UserAction extends ActionSupport {
private User user;
private UserManager userManager; @Override
public String execute() throws Exception {
// TODO Auto-generated method stub
System.out.println("user:" + user.getName()); //这里当然数据库也是乱码 // user.setName("随便");
userManager.add(user);
return super.execute();
} @Resource(name = "userManageImple")
public void setUserManage(UserManager userManage) {
this.userManager = userManage;
} public UserManager getUserManage() {
return userManager;
} public User getUser() {
return user;
} public void setUser(User user) {
this.user = user;
}}
无论我再web.xml添加<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>filter.EncodeFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>*</url-pattern>
</filter-mapping>
还是spring得encodFilter都不行struct.xml
也添加啦<constant name="struts.i18n.encoding" value="UTF-8" />
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="userRegister" method="get">
用户名字<input type="text" name="user.name"/><br/>
邮箱账户<input type="text" name="user.email"/><br/>
密码<input type="password" name="user.password"/><br/>
确认密码<input type="password" name="password2"/><br/>
<button type="submit" >提交</button>
</form>
</body>
</html>然后我在】 userAction.java中总是接收到乱码
Component(value = "userAction")
public class UserAction extends ActionSupport {
private User user;
private UserManager userManager; @Override
public String execute() throws Exception {
// TODO Auto-generated method stub
System.out.println("user:" + user.getName()); //这里当然数据库也是乱码 // user.setName("随便");
userManager.add(user);
return super.execute();
} @Resource(name = "userManageImple")
public void setUserManage(UserManager userManage) {
this.userManager = userManage;
} public UserManager getUserManage() {
return userManager;
} public User getUser() {
return user;
} public void setUser(User user) {
this.user = user;
}}
无论我再web.xml添加<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>filter.EncodeFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>*</url-pattern>
</filter-mapping>
还是spring得encodFilter都不行struct.xml
也添加啦<constant name="struts.i18n.encoding" value="UTF-8" />
你可以先用String的一个方法试试,字符是什么格式
String str = new String(bytes,"charset");
URIEncoding=utf-8
因为你用get的方式tomcat没设好会传乱码
参考:public class CharacterEncodingFilter implements Filter { private String encoding; public void init(FilterConfig config) throws ServletException {
encoding = config.getInitParameter("requestEncoding");
if (encoding == null)
encoding = "UTF-8";
} public void doFilter(ServletRequest request, ServletResponse response,
FilterChain next) throws IOException, ServletException { if (null == request.getCharacterEncoding())
request.setCharacterEncoding(encoding);
response.setContentType("text/html; charset=UTF-8");
response.setCharacterEncoding("UTF-8");
next.doFilter(request, response);
} public void destroy() {
}}
<filter-name>encoding</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>
然后,你再看看你的struts的包是哪个版本的,不会是2.1.6的吧,如果是这个版本的话,那相过滤器,本来就存在BUG,我今天刚好看视频,看到过,你再把过滤器的配置改一下,看改成这样行不行
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern/*</url-pattern>
</filter-mapping>
要么你就按照7楼说的,将method改成post。