我正在尝试在java中创建一个带有链接的String。 消息读起来像
String message ="Something happened please go back to <a href=\"link.com\"> Home </a> and start again";
此消息最终使用
进行编码String msg = URLEncoder.encode(message,"UTF-8");
并显示在JSP页面上,但在JSP页面上呈现时此消息如下所示。
Something happened please go back to <a href=\"link.com\"> Home </a> and start again
普通字符串,但没有实际链接。
我不确定如何在Java中的String消息中嵌入链接。
答案 0 :(得分:0)
文章说:
不要将java.net.URLEncoder或java.net.URLDecoder用于整个网址 我们不是在开玩笑。这些类不用于编码或解码 URL,正如他们的API文档清楚地说:
HTML表单编码的实用程序类。这个类包含静态 将String转换为的方法 application / x-www-form-urlencoded MIME格式。欲获得更多信息 关于HTML表单编码,请参阅HTML规范。
这与网址无关。它最多类似于查询部分编码。 使用它来编码或解码整个URL是错误的。你会想 标准JDK有一个标准类来处理URL编码 正确(部分,即)但要么它不存在,要么我们 还没有找到它,这诱使很多人使用URLEncoder 出于错误的目的。
我已经从上面的页面格式化了相关代码,并根据您的代码对其进行了调整:
String pathSegment = "link.com";
String message ="Something happened please go back to <a href=\"" + URLUtils.encodePathSegment(pathSegment) + "> Home </a> and start again";