JSP, JavaScript и объекты Java

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 и т. Д.

6
задан Flimzy 13 June 2018 в 23:35
поделиться

4 ответа

вам не нужно использовать внешнюю библиотеку 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>
4
ответ дан 17 December 2019 в 00:11
поделиться

Java и Javascript - совершенно разные языки. Javascript не знает, что делать с объектом Java HashMap (на самом деле в вашем примере вы получите результат HashMap.toString ()). Вам нужно будет сериализовать его в некоторую форму, которую будет понимать Javascript, например. JSON.

2
ответ дан 17 December 2019 в 00:11
поделиться

Весь этот фрагмент кода

sales = '<%= session.getAttribute("sales") %>';

выводит значение session.getAttribute ("sales") в вывод HTML. Без какой-либо логики с вашей стороны относительно того, как форматировать вывод, Java просто вызовет .toString () для этого объекта - реализация по умолчанию (если вы не переопределите ее) обычно приводит к выводу, который выглядит как имя класса @ 1234abc12 .

Итак, краткий ответ: да, вам нужно будет добавить некоторую логику на стороне Java, насколько вы хотите, чтобы ваша структура объекта / данных выводилась в HTML-документ.

0
ответ дан 17 December 2019 в 00:11
поделиться

Попробуйте использовать JSON , который позволит вам описывать ваш Java-объект в json (нотация объекта java-скрипта). Таким образом вы можете загрузить описанный объект прямо в javascript.

1
ответ дан 17 December 2019 в 00:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: