2012-01-06 82 views

回答

14

使用HTML标准mailto: link syntax。你只需要确保生成的HTML链接结束了看起来像

<a href="mailto:[email protected]?subject=Some%20subject&amp;body=Some%20body">mail</a> 

这可以在JSF通过例如

<h:outputLink value="mailto:#{user.email}"> 
    <f:param name="subject" value="Some subject" /> 
    <f:param name="body" value="Some body" /> 
    <h:outputText value="mail" /> 
</h:outputLink> 

这些链接会打开客户端的默认邮件组成编辑器来实现。 subjectbody参数是可选的,并允许您在电子邮件编辑器中设置默认主题和正文。

+2

通过使用JSF方法,它会分别转移我的主题和主体:“Some +主题”和“Some +主体”。无论如何要解决这个问题(这将使更优雅的解决方案)? – blo0p3r 2013-08-12 18:37:00

+0

同样的问题在这里,没有解决方案。 – LStrike 2014-03-27 10:38:33

+0

只需按“问题问题”按钮? – BalusC 2014-03-27 11:06:29

1

坏消息是,JSF标记h:outputLink将主题和主体作为查询参数进行转义,用+而不是%20替换空格。

的好消息是,你可以用java.net.URI类实现正确的结果:

java.net.URI uri = new java.net.URI("mailto", "[email protected]", "subject=Some subject&body=Some body"); 
String result = "mailto:?" + uri.getRawFragment(); 
assert result.equals("mailto:?subject=Some%20subject&body=Some%20body"); 

注意,在构造函数中的前两个参数是不相关的。

您可以在href属性您的JSF/Primefaces标签,使用resulth:outputLinkp:button与预定义的主题和内容,空接收地址打开默认的电子邮件客户端。

相关问题