3

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 -->
4

3 回答 3

4

因为它们是表达式,而不是语句。

<%= add %>

被翻译成

out.print(add);

所以你真的不想在表达式后面加分号。它会导致

out.print(add;);

这不是有效的Java。

于 2013-08-01T07:02:40.580 回答
2

来自Java 服务器编程黑皮书

表达式标记包含一个脚本语言表达式,该表达式被求值、转换为字符串并插入到 JSP 文件中表达式出现的位置。因为表达式的值被转换为 String,所以您可以在 JSP 文件的文本中使用表达式。

喜欢:

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

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

在您的示例代码中

<%= add %>

方法

out.print(add);

如果您必须在关闭标记之前添加分号

那么它是无效的

out.print(add;);

它显示了一些错误。

了解更多关于 JSP 脚本标签

于 2013-08-01T07:01:30.897 回答
1

因为在那之后出现的任何东西"=" in <%= %>都会像out.print(abc);

所以如果你添加分号,它会像out.print(abc;);-> 这是编译时错误。

它非常类似于

没有分号

System.out.println(abc);

如果你添加分号然后

System.out.println(abc;);
于 2013-08-01T07:05:12.170 回答