在JSP中为什么Expression标签不能在语句结束时使用分号

时间:2013-08-01 06:57:27

标签: jsp

JSP中的表达式元素     <%= ...%>只有一个java表达式 例如:

 Index.jsp
 ----------
 Welcome to JSP scripting elements

  <%! int num1=10;
      int num2=20;
      int add;
   %> 

<% add=num1+num2 %>

   Addition is<%= add %> <@!-- Expression tag -->

3 个答案:

答案 0 :(得分:4)

因为他们是表达,而不是陈述。

<%= add %>

被翻译为

out.print(add);

所以在表达之后你真的不想要一个分号。这会导致

out.print(add;);

这不是有效的Java。

答案 1 :(得分:2)

来自the Java Server Programming Black Book

  

表达式标记包含一个脚本语言表达式,它被计算,转换为String,并插入表达式   出现在JSP文件中。因为表达式的值是   转换为String ,您可以在文本中使用表达式   JSP文件。

     

像:

    <%= someExpression %> 
    <%= (new java.util.Date()).toLocaleString() %>
     

您不能使用分号结束表达式。

在您的示例代码中

<%= add %>

装置

out.print(add);

如果您必须在关闭标记

之前添加分号

然后它无效

out.print(add;);

它显示了一些错误。

know more about JSP scripting tags

答案 2 :(得分:1)

因为"=" in <%= %>之后的所有内容都会保留在out.print(abc);

之内

因此,如果你添加分号,它就像out.print(abc;); - &gt;这是编译时错误。

非常相似

没有分号

System.out.println(abc);

如果你添加分号,那么

System.out.println(abc;);