request.getParameter()取值乱码
大家好,我到网上找了很多关于request.getParameter这个乱码的解决方法都对我这个小程序不管用,把程序贴出来,大家帮我看看
我的jsp页面是这样的
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%>
<%@ page import="java.util.List"%>
<%@ page import="java.util.Iterator"%>
<%@page import="com.hanke.dao.Muju"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<%request.setCharacterEncoding("UTF-8"); %>
<title>设备及模具系统</title>
<link href="css/css.css" rel="stylesheet" type="text/css" />
<script type="text/JavaScript">
</script>
<link href="css/style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="30"> <table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="62" background="images/nav04.gif"> </td>
</tr>
</table></td></tr>
<tr>
<td><table id="subtree1" style="DISPLAY: " width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><table width="95%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td height="40" class="font42">
<table width="100%" border="0" cellpadding="4" cellspacing="1" bgcolor="#464646" class="newfont03">
<tr class="CTitle" >
<td height="22" colspan="11" align="center" style="font-size:16px">设备一览表</td>
</tr>
<tr bgcolor="#EEEEEE">
<td height="22" align="center" >模具编号</td>
<td height="22" align="center" >模具名称</td>
<td height="22" align="center" >购买日期</td>
<td height="22" align="center" >价格</td>
<td height="22" align="center" >适应产品</td>
<td height="22" align="center" >确认人</td>
<td height="22" align="center" >使用部门</td>
<td height="22" align="center" >供应商</td>
<td height="22" align="center" >备注</td>
<td height="22" align="center" >操作</td>
</tr>
<% List list=(List)request.getAttribute("list");
if(list!=null&&list.size()>0){
Iterator it = list.iterator();
while (it.hasNext()) {
Muju j = (Muju) it.next();
%>
<tr bgcolor="#FFFFFF">
<td height="22" align="center" ><%=j.getMujuid()%></td>
<td height="22" align="center" ><%=j.getMujuname()%></td>
<td height="22" align="center" ><%=j.getBuydate()%></td>
<td height="22" align="center" ><%=j.getPrice()%></td>
<td height="22" align="center" ><%=j.getInproduct()%></td>
<td height="22" align="center" ><%=j.getConfimer()%></td>
<td height="22" align="center" ><%=j.getDepartment() %></td>
<td height="22" align="center" ><%=j.getSupplier()%></td>
<td height="22" align="center" ><%=j.getRemark()%></td>
<td height="22" align="center" ><a href="muju.do?opt=modify&id=<%=j.getMujuid()%>&name=<%=j.getMujuname()%>&buydate=<%=j.getBuydate()%>&price=<%=j.getPrice()%>&product=<%=j.getInproduct()%>&confimer=<%=j.getConfimer()%>&dept=<%=j.getDepartment() %>&supplier=<%=j.getSupplier()%> ">修改</a> <a href="muju.do?opt=delete&id=<%=j.getMujuid()%>">删除</a> <a href="mjweixiu.do?opt=weixiu&id=<%=j.getMujuid()%>&name=<%=j.getMujuname()%>">维修</a>
<a href="sbbaoyang.do?opt=baoyang&id=<%=j.getMujuid()%>&name=<%=j.getMujuname()%>">保养</a> <a href="sbbaoyangjh.do?opt=baoyangjh&id=<%=j.getMujuid()%>&name=<%=j.getMujuname()%>">保养计划</a> <a href="sbbeijian.do?opt=beijian&id=<%=j.getMujuid()%>&name=<%=j.getMujuname()%>">备件</a>
<a href="sbbaoyangjh.do?opt=baoyangjh&id=<%=j.getMujuid()%>&name=<%=j.getMujuname()%>">保养计划</a> <a href="sbjianyan.do?opt=jianyan&id=<%=j.getMujuid()%>&name=<%=j.getMujuname()%>&dep=<%=j.getDepartment()%>">验收</a>
</td>
</tr>
<%
}
}else{
%>
<tr bgcolor="#FFFFFF">
<td height="22" colspan="10" align="center" >对不起,没有添加设备信息!!!</td>
</tr>
<%}%>
</table></td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>
我的Aaction是这样写的
public ActionForward modify(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws UnsupportedEncodingException {
MujuForm mujuForm = (MujuForm) form;// TODO Auto-generated method stub
request.setCharacterEncoding("UTF-8");
//mujuForm.setMujuid(request.getParameter("id"));
//mujuForm.setMujuname(request.getParameter("name"));
//mujuForm.setInproduct(request.getParameter("product"));
//mujuForm.setConfimer(request.getParameter("confimer"));
mujuForm.setMujuid(new String(request.getParameter("id").getBytes("ISO-8859-1"),"UTF-8"));
mujuForm.setMujuname(new String(request.getParameter("name").getBytes("ISO-8859-1"),"UTF-8"));
mujuForm.setBuydate(new String(request.getParameter("buydate").getBytes("ISO-8859-1"),"UTF-8"));
mujuForm.setPrice(new String(request.getParameter("price").getBytes("ISO-8859-1"),"UTF-8"));
mujuForm.setInproduct(new String(request.getParameter("product").getBytes("ISO-8859-1"),"UTF-8"));
mujuForm.setConfimer(new String(request.getParameter("confimer").getBytes("ISO-8859-1"),"UTF-8"));
mujuForm.setDepartment(new String(request.getParameter("dept").getBytes("ISO-8859-1"),"UTF-8"));
mujuForm.setSupplier(new String(request.getParameter("supplier").getBytes("ISO-8859-1"),"UTF-8"));
String name=new String(request.getParameter("name").getBytes("ISO-8859-1"),"UTF-8");
System.out.println("name====="+request.getParameter("name"));
System.out.println("product====="+request.getParameter("product"));
System.out.println("name====="+new String(request.getParameter("name").getBytes("ISO-8859-1"),"UTF-8"));
return mapping.findForward("xgmj");
}
[解决办法]
用java.net.URLEncoder.encode编码,注意有时候要编码两次编码
然后呢再把编码后的参数传到action。
这个方法反正我是用了很多次了 对ie6也管用,楼主试试看
[解决办法]