在html标签上转义网址

Joã*_*res 2 html jsf

我这样做:

<a href="http%3A%2F%2Flocalhost%3A8080%2Fnews.xhtml%3Fid%3D32%26lang%3Den" target="_blank" />

当渲染时,链接指向:http:// localhost:8080/news.xhtml?id = 32&lang = en

我需要这个链接指向编码的url而不是解码的那个.

有谁知道怎么逃避它?

更新(根据评论):我需要它实现在Facebook功能上分享这个.这样做的方法是调用以下链接:http://facebook.com/sharer.php?u=<encoded url to share>

Bal*_*usC 5

你为什么需要这个?然后,该链接将在技术上被打破.

无论如何,您基本上只需要%通过URL编码表示来替换百分比%25(换句话说:只需对URL进行两次编码).

因此,您的特定情况的结果将是:

http%253A%252F%252Flocalhost%253A8080%252Fnews.xhtml%253Fid%253D32%2526lang%253Den

更新:正如您在JSF上下文中提到的那样,以下是您通常在JSF中创建链接的方式(因此默认情况下已经进行了URL编码):

<h:outputLink value="#{bean.url}" />
Run Code Online (Sandbox Code Playgroud)

如果你想编码两次,你将不得不抓住JSTL的c:url:

<c:url value="#{bean.url}" var="url" />
<h:outputLink value="#{url}" />
Run Code Online (Sandbox Code Playgroud)

更新2:根据评论,现在的实际要求是完全清楚的,那么正常的JSF方式就是这样(注意你不一定需要在这里编码两次!):

<h:outputLink value="http://facesbook.com/sharer.php">
    <f:param name="u" value="#{bean.url}" />
</h:outputLink>
Run Code Online (Sandbox Code Playgroud)