Ссылка Primefaces открыть окно создания письма - PullRequest
4 голосов
/ 06 января 2012

С JSF-Primefaces, как я могу сделать ссылку на столбец dataTable для emailId, чтобы onclick открывал окно составления электронной почты? Я использую Primefaces.3.0.M3 с JSF2.

Ответы [ 2 ]

15 голосов
/ 06 января 2012

Использовать стандарт HTML mailto: синтаксис ссылки .Вам просто нужно убедиться, что сгенерированная HTML-ссылка в конечном итоге будет выглядеть так:

<a href="mailto:john.doe@example.com?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>

Эти ссылки откроют клиентские настройки по умолчаниюредактор почтовых композиций.Параметры subject и body являются необязательными и позволяют установить тему и тело по умолчанию в редакторе электронной почты.

2 голосов
/ 11 июня 2014

Плохая новость заключается в том, что тег JSF h:outputLink экранирует тему и тело в качестве параметров запроса, заменяя пробелы + вместо %20.

Хорошая новость заключается в том, что вы можете достичьправильный результат с java.net.URI класс:

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

Обратите внимание, что первые два аргумента в конструкторе не имеют значения.

Вы можете использовать resultв атрибуте href вашего тега JSF / Primefaces, например h:outputLink или p:button, который открывает почтовый клиент по умолчанию с предопределенной темой и телом и пустым адресом получателя.

...