【JAVA】(实训1)EL表达式编码问题

这一周在思途教育实训,再次巩固了之前学习过的javaMVC的知识,接触了不少新的知识,比如SSM/SSH框架、Spring、Bootstrap框架、JSTL等等。也暴露出了很多问题,谨以此记录下来以便提醒自己。


	
	    
	    ${stu.name}
	    ${stu.sex }
	    ${stu.age }
	    
	    	
		
	    
	

在JSTL中有标签以实现元素的迭代。在上面的代码中,我想使用URL传参的方式实现不同页面间参数的传递,如果使用URL进行参数传递,需要在前端进行编码,并在后端进行解码(方法略),如果不对中文字符进行编码和解码的处理,在后端接受时就会出现乱码。但是在这里,参数是以EL表达式的形式给出的,如何进行编码的处理???

我首先想到的是前端编码:

encodeURI(encodeURI(“***”))

后端解码:

String str = new String(request.getParameter("param").getBytes("iso8859-1"),"UTF-8");

运行结果如下图,在后端接收的数据还是乱码。

【JAVA】(实训1)EL表达式编码问题_第1张图片

后来看到论坛里一个神的回复(下面第一个链接),受益匪浅。从而得出了正确的处理方式:

无需对EL表达式进行编码,直接在后台获取时用URLDecoder.decode()进行解码即可。

代码:

int id=Integer.parseInt(request.getParameter("id")) ;
String name2=java.net.URLDecoder.decode(request.getParameter("name"));
String sex2=java.net.URLDecoder.decode(request.getParameter("sex"));
//String name=new String(request.getParameter("name").getBytes("iso-8859-1"),"UTF-8");
//String sex=new String(request.getParameter("sex").getBytes("iso-8859-1"),"UTF-8");
int age=Integer.parseInt(request.getParameter("age"));

运行结果如图:

【JAVA】(实训1)EL表达式编码问题_第2张图片

成功解决问题!

参考资料:http://bbs.csdn.net/topics/250056412

http://blog.csdn.net/u010648555/article/details/50011987

你可能感兴趣的:(【JAVA】(实训1)EL表达式编码问题)