【问题标题】:Only html of jsp page are rendered , jsp tags displays as it as仅呈现jsp页面的html,jsp标签显示为
【发布时间】:2015-01-08 20:18:38
【问题描述】:

在尝试为电子邮件呈现 jsp 模板时,我只能正确显示 html,jsp 标签按原样..

StringWriter writer = new StringWriter();
IOUtils.copy(new FileInputStream(new File(emailTemplateJSP)), writer);
message.setSubject("This is the Subject Line!");
message.setContent(writer.toString(), "text/html;charset=utf-8");
Transport transport = session.getTransport("smtp");]

这里,只有“emailTemplateJSP”的html部分显示在收件箱中。还在挠头..

【问题讨论】:

  • 电子邮件中的输出类似于 Hello World!。 jsp标签按原样显示..
  • 请检查文件的扩展名,可能是它的.html。要解析 jsp 脚本,它需要是 .jsp
  • 这是jsp..刚刚检查过
  • 我希望你不要直接从浏览器运行你的jsp,而不是通过tomcat、glassfish等应用服务器启动web应用程序。
  • 是的,我正在尝试使用 jsp 页面作为发送电子邮件的模板..so..你知道我们该如何解决这个问题吗?

标签: jsp servlets


【解决方案1】:

您现在要做的是将文件作为字节流读取,并且不让 servlet 容器将 jsp 标记转换为 html。您需要创建对所需页面的调用,然后像现在一样复制它的字节。

如果jsp需要参数,最好使用工具而不是直接读取文件。

下面是一个关于名为 apache HttpClient(jakarta commons 项目的一部分)的优秀工具的教程链接。它非常简单,可以省去处理套接字的麻烦。

http://www.mkyong.com/java/apache-httpclient-examples/

【讨论】:

    【解决方案2】:

    看起来您是通过电子邮件直接通过代码发送文件,并查看电子邮件客户端收件箱中的电子邮件。

    为了正确解析 .jsp 文件,它必须由 Tomcat、Glassfish、WebLogic 等 servlet 引擎处理...

    .jsp 文件由 servlet 引擎处理,然后在视图中呈现适当的 HTML,以显示在浏览器或电子邮件客户端收件箱中

    因此,在这种情况下,您的代码需要在 servlet 引擎中运行,并在通过电子邮件发送生成的 HTML 文件之前处理您的视图文件 (.jsp) 并生成 HTML。

    【讨论】:

    • 那么..除了模板引擎还有其他解决方案吗?
    • 模板引擎?? JSP 文件设计为在 servlet 引擎上运行,并且必须由 servlet 引擎处理。也许 JSP 不是您电子邮件模板的最佳解决方案,不确定您在哪里运行此代码。
    • 我从 servlet 中的代码中收到类似 Hello World 的电子邮件
    • 不要为此使用 JSP 模板。你可以让它工作,但我通常使用 Apache Velocity 等模板库来构建电子邮件内容。 velocity.apache.org/engine/releases/velocity-1.7/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-18
    • 1970-01-01
    • 2016-04-19
    • 1970-01-01
    • 1970-01-01
    • 2013-11-30
    相关资源
    最近更新 更多