Jsf 2 JSF2读取GET参数中的特殊字符
这是我的问题,有人能帮帮我吗 目前,我正在将一个应用程序从struts迁移到JSF2。 我们有一个用户验证链接,发送到他们的电子邮件进行验证, 在他们成功注册后。 例如:Jsf 2 JSF2读取GET参数中的特殊字符,jsf-2,facelets,Jsf 2,Facelets,这是我的问题,有人能帮帮我吗 目前,我正在将一个应用程序从struts迁移到JSF2。 我们有一个用户验证链接,发送到他们的电子邮件进行验证, 在他们成功注册后。 例如: http://testserv:5050/bjb/page/validateAccount.faces?Email=qwerty@testsession#1.com&Code=1272 在发送给用户的旧链接中,电子邮件地址包含特殊字符。 在新的应用程序中,我们使用URLEncoder.encode对它们进行编码。 我
http://testserv:5050/bjb/page/validateAccount.faces?Email=qwerty@testsession#1.com&Code=1272
在发送给用户的旧链接中,电子邮件地址包含特殊字符。 在新的应用程序中,我们使用URLEncoder.encode对它们进行编码。 我认为,这与UTF-8无关,但是 我将请求、响应和JSF外部上下文#setResponseCharacterEncoding设置为UTF-8。 tomcat也配置为UTF-8 validateAccount.xhtml
在java代码中,
FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get(paramName);
无法正确读取URL GET请求参数
我应该如何解决现有链接的问题。
我脑子里想的是,我可以在我的xhtml页面中编写一个javascript函数,
这可以在加载时执行,因此使用javascript函数可以对参数进行编码。
但是如何在调用之前执行javascript函数
是否有更好的解决方案?传出URL中的查询字符串参数应按如下方式编码,其中明确提到所需的字符集:
String emailParam = URLEncoder.encode(email, "UTF-8");
String url = "http://testserv:5050/bjb/page/validateAccount.faces?Email=" + emailParam + "&Code=1272";
应确认Tomcat服务器使用完全相同的字符集解码传入URL:
<Context ... URIEncoding="UTF-8">
这就是编码/解码GET URL所需要做的全部工作。HTML元标记与此无关。HTTP响应编码与此无关。HTML表单accept字符集做得不尽人意
请注意,您编辑了右侧Tomcat配置文件中的
元素。例如,如果您在Eclipse中管理Tomcat,默认情况下需要在Eclipse的Servers项目中编辑Tomcat,而不是在Tomcat的安装文件夹中
另见
<Context ... URIEncoding="UTF-8">