2012-01-06 9 views

答えて

14

HTML標準mailto: link syntaxを使用してください。生成されたHTMLリンクこれは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> 

のためにすることによって達成することができる

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

のように見えるように終わることをあなたは確認する必要があります。 subjectbodyのパラメータはオプションで、電子メールエディタでデフォルトの件名と本文を設定できます。

+2

JSFメソッドを使用すると、私の主体と本体をそれぞれ「Some + subject」と「Some + body」からエスケープします。とにかくこれを回避するには(これはより洗練されたソリューションになります)? – blo0p3r

+0

同じ問題があり、解決策もありません。 – LStrike

+0

「質問する」ボタンを押すだけです。 – BalusC

1

JSFタグh:outputLinkは、件名と本文をクエリパラメータとしてエスケープし、スペースを%20の代わりに+に置き換えたというのが悪いニュースです。コンストラクタの最初の2つの引数が無関係であることを

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"); 

注:

良いニュース

あなたは java.net.URIクラスで正しい結果を得ることができるということです。

あなたは、事前に定義された件名と本文と空の受信者アドレスをデフォルトの電子メールクライアントを開くなどh:outputLinkp:buttonとして、あなたのJSF/Primefacesタグのhref属性にresultを使用することができます。

関連する問題