Плохая новость заключается в том, что тег 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
, который открывает почтовый клиент по умолчанию с предопределенной темой и телом и пустым адресом получателя.