2010年01月03日   头条, 码农之路   6,407 次浏览
记得在刚开始学STRUTS2的时候,经常遇到了中文乱码的问题,其实乱码从学习SERVLET开始就有了的,其中最常见的就是地址栏传值时出现的乱码问题,一般我们的解决方法就是对传入STRUTS2的值进行再次编码,如String s = new String(s.getBytes(), “UTF-8″);
今天在用时也遇到了这样的问题,但是无意间发现了一个更好的方法(或许这个方法对于别人来说早就知道了),就是可以把要传的值通过FORM中隐藏的文本框的形式传过去,这样就不存在上面所说的乱码问题了,具体方法如下:
1、一个FORM:
<s:form action=”UserOperator” id=”editForm”>
<input name=”selName” id=”selName” value=”” type=”hidden”>
</s:form>
2、我们一般都是在JS中向STRUTS2传值,我们就可以先把要传的值放到文本框中,再提交FORM,下为JS代码:
s=’中文乱码’;
document.getElementById(“selName”).value = s;
document.editForm.action=”UserOperator”;
document.editForm.submit();
3、这样我们就可以直接在ACTION中得到中文值了:
HttpServletRequest request = ServletActionContext.getRequest();
String selName= request.getParameter(“selName”);
如上,我们就可以在JS中向ACTION传值时不用担心乱码问题了。
>>> Hello World <<<
这篇内容是否帮助到你了呢?
如果你有任何疑问或有建议留给其他朋友,都可以给我留言。