class UserMailer < ActionMailer::Base def welcome_email(user, company) @user = user @url = user_url(@user) delivery_options = { user_name: company.smtp_user, password: company.smtp_password, address: company.smtp_host } mail(to: @user.email, subject: "Please see the Terms and Conditions attached", delivery_method_options: delivery_options) end end
Rails 4 допускает динамические варианты доставки. Приведенный выше код взят из руководства по основам действий, которое вы можете найти здесь: http://guides.rubyonrails.org/v4.0/action_mailer_basics.html#sending-emails-with-dynamic-delivery-options
Таким образом, можно иметь разные настройки smtp для каждого отправляемого вами сообщения электронной почты или, как в вашем случае использования для различных подклассов, таких как UserMailer, OtherMailer и т. Д.
вам не нужно использовать внешнюю библиотеку json (но можно!) - вы можете распечатать json прямо в переменной javascript, например:
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
<script>
(function(){
var sales = {
<c:forEach var="entry" items="${requestScope['sales'].entrySet}" varStatus="counter">
'${entry.key}' : ${entry.value} //outputs "2000" :1234 ,
<c:if test="${!counter.last}">, </c:test>
</c:foreach>
};
//js code that uses the sales object
doStuffWith(sales);
})()
</script>
Java и Javascript - совершенно разные языки. Javascript не знает, что делать с объектом Java HashMap (на самом деле в вашем примере вы получите результат HashMap.toString ()). Вам нужно будет сериализовать его в некоторую форму, которую будет понимать Javascript, например. JSON.
Весь этот фрагмент кода
sales = '<%= session.getAttribute("sales") %>';
выводит значение session.getAttribute ("sales")
в вывод HTML. Без какой-либо логики с вашей стороны относительно того, как форматировать вывод, Java просто вызовет .toString ()
для этого объекта - реализация по умолчанию (если вы не переопределите ее) обычно приводит к выводу, который выглядит как имя класса @ 1234abc12
.
Итак, краткий ответ: да, вам нужно будет добавить некоторую логику на стороне Java, насколько вы хотите, чтобы ваша структура объекта / данных выводилась в HTML-документ.
Попробуйте использовать JSON , который позволит вам описывать ваш Java-объект в json (нотация объекта java-скрипта). Таким образом вы можете загрузить описанный объект прямо в javascript.