为什么它显示"字符串文字没有被双引号正确关闭"?

时间:2017-07-25 10:45:19

标签: java string jsp

我在尝试将HTML代码作为字符串参数放在message.setContent()中的行显示错误为"字符串文字没有被双引号"正确关闭。请帮我找出它为什么这样显示。

try {
      // Create a default MimeMessage object.
      MimeMessage message = new MimeMessage(mailSession);
      MimeBodyPart htmlPart = new MimeBodyPart();
      %>

<% 

      message.setFrom(new InternetAddress(from));


      message.addRecipient(Message.RecipientType.TO,
                               new InternetAddress(to));

      message.setSubject("Thank you for using our service");



      message.setContent("<table><tr><td>Full Name</td><td><%= name %></td></tr><tr><td>Address</td><td><%= Addr %></td></tr><tr><td>Age</td><td><%= age %></td></tr><tr><td>Qualification</td><td><%= Qual %></td></tr><tr><td>Percentage</td><td><%= Persent %></td></tr><tr><td>Year of Passout</td><td><%= Year %></td></tr></table>",
"text/html");


      Transport.send(message);
      result = "Sent message successfully....";
   } catch (MessagingException mex) {
      mex.printStackTrace();
      result = "Error: unable to send message....";
   }

1 个答案:

答案 0 :(得分:0)

输出语句&lt;%= name%&gt;在jsp上,编译时产生输出:

out.print(name);

现在,如果您在字符串中尝试附加名称变量,则应该使用:

message.setContent("<table><tr><td>Full Name</td><td>"+name+"</td></tr>.....","text/html");

别忘了你必须在这里定义 name 变量,如下所示:

<%String name = request.getParameter("name");%>

或者像这样......

...当然,这不是你应该如何使用JSP。应该强烈避免使用scriptlet。 Check this out