表层function letter_save(){
var c=$('id').value;
var s=document.all.LETTER_SEQ.value;
var n=document.all.LETTER_NAME.value;
var form=document.forms[0];
alert(n);
form.action="/humanres/letter.shtml?method=edit&letterCode="+c+"&letterSeq="+s+"&letterName="+n;
form.submit();
}低层public ActionForward edit(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
// TODO Auto-generated method stub
Map map = new HashMap();
map.put("LETTER_ID",this.getParameter(request, "letterCode"));
map.put("LETTER_SEQ", this.getParameter(request, "letterSeq"));
map.put("LETTER_NAME", this.getParameter(request, "letterName"));
this.getHanton().getEmpLetterDAO().update(map);
return this.tree(mapping, form, request, response);
}为什么我的编辑完事之后显示的却是乱码的NAME? 在JS中n的值还是正常的,可在低层中map里的值就已经是乱码的了?
请问这是为什么?
并且我还有个增加的功能缺可以实现。
var c=$('id').value;
var s=document.all.LETTER_SEQ.value;
var n=document.all.LETTER_NAME.value;
var form=document.forms[0];
alert(n);
form.action="/humanres/letter.shtml?method=edit&letterCode="+c+"&letterSeq="+s+"&letterName="+n;
form.submit();
}低层public ActionForward edit(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
// TODO Auto-generated method stub
Map map = new HashMap();
map.put("LETTER_ID",this.getParameter(request, "letterCode"));
map.put("LETTER_SEQ", this.getParameter(request, "letterSeq"));
map.put("LETTER_NAME", this.getParameter(request, "letterName"));
this.getHanton().getEmpLetterDAO().update(map);
return this.tree(mapping, form, request, response);
}为什么我的编辑完事之后显示的却是乱码的NAME? 在JS中n的值还是正常的,可在低层中map里的值就已经是乱码的了?
请问这是为什么?
并且我还有个增加的功能缺可以实现。
request.setCharacterEncoding("gb2312");
public ActionForward edit(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
// TODO Auto-generated method stub request.setCharacterEncoding("gb2312"); Map map = new HashMap();
map.put("LETTER_ID",this.getParameter(request, "letterCode"));
map.put("LETTER_SEQ", this.getParameter(request, "letterSeq"));
map.put("LETTER_NAME", this.getParameter(request, "letterName"));
this.getHanton().getEmpLetterDAO().update(map);
return this.tree(mapping, form, request, response);
}
如果真的不行的话可以在js中对name进行encodeURI下
然后服务器端通过DecodeURI.decode转换过来,保证ok
这是我调试MAP的值
{LETTER_NAME=asd????éç¢éé, LETTER_SEQ=3, LETTER_ID=1230599211195_1}
试试这样
String letterName = new String(request.getParameter("letterName").getBytes("ISO8859-1"),"GB2312");
map.put("LETTER_NAME", letterName);
结贴给分了,谢谢大家