如何将内容呈现为纯文本和 URL 编码
How to render content as both plain text and URL encoded
JSF 2.x/Primefaces 7.x
假设我有一个
<p:outputLabel id="myLabel">
Here some static text written from a colleage without java background,
but mixed with #{myBean.name} information from java object
<p:outputLabel>
或<h:outputLabel>
.
我想在同一页面上向 link 发送邮件
<a href="mailto:">
并将标签字段(id=myLabel)中的内容放入电子邮件中。
我还找到了像这样的例子
<a href="mailto:?subject=mySubject&body=myBody">
预填电子邮件。所以 myBody 应该是 id=myLabel 字段的内容。
我正在寻找一种解决方案,以将呈现的内容从标签中提取为正文。
我假设,内容也必须是 url 编码的。
有什么提示吗?
提前致谢。
您可以使用 c:var
将 p:outputLabel
的内容添加到变量中。例如:
<c:set var="myVar">Some text at #{now}</c:set>
<p:outputLabel>#{myVar}</p:outputLabel>
这允许您在 link 中重复使用 myVar
。在您的情况下,您想将其用作 URL 参数。所以它确实需要 URL 编码。为此,您可以简单地使用 h:outputLink
和 f:param
s,它将自动被 URL 编码:
<h:outputLink value="mailto:">
<f:param name="subject" value="#{myVar}" />
<f:param name="body" value="#{myOtherVar}" />
Send mail
</h:outputLink>
您还可以创建 a custom EL function to do so, or, if you are using OmniFaces you can use of:encodeURL
:
<c:set var="myVar">Some text at #{now}</c:set>
<p:outputLabel>#{myVar}</p:outputLabel>
'myVar' URL encoded: #{of:encodeURL(myVar)}
JSF 2.x/Primefaces 7.x
假设我有一个
<p:outputLabel id="myLabel">
Here some static text written from a colleage without java background,
but mixed with #{myBean.name} information from java object
<p:outputLabel>
或<h:outputLabel>
.
我想在同一页面上向 link 发送邮件
<a href="mailto:">
并将标签字段(id=myLabel)中的内容放入电子邮件中。
我还找到了像这样的例子
<a href="mailto:?subject=mySubject&body=myBody">
预填电子邮件。所以 myBody 应该是 id=myLabel 字段的内容。
我正在寻找一种解决方案,以将呈现的内容从标签中提取为正文。 我假设,内容也必须是 url 编码的。
有什么提示吗? 提前致谢。
您可以使用 c:var
将 p:outputLabel
的内容添加到变量中。例如:
<c:set var="myVar">Some text at #{now}</c:set>
<p:outputLabel>#{myVar}</p:outputLabel>
这允许您在 link 中重复使用 myVar
。在您的情况下,您想将其用作 URL 参数。所以它确实需要 URL 编码。为此,您可以简单地使用 h:outputLink
和 f:param
s,它将自动被 URL 编码:
<h:outputLink value="mailto:">
<f:param name="subject" value="#{myVar}" />
<f:param name="body" value="#{myOtherVar}" />
Send mail
</h:outputLink>
您还可以创建 a custom EL function to do so, or, if you are using OmniFaces you can use of:encodeURL
:
<c:set var="myVar">Some text at #{now}</c:set>
<p:outputLabel>#{myVar}</p:outputLabel>
'myVar' URL encoded: #{of:encodeURL(myVar)}