jsp表达式标签之间的差异<%和<%=

roc*_*zen 8 jsp jsp-tags struts-1

我或多或少知道<%!并且<%,但我似乎找不到<%=和<%之间的区别.我试图通过在我的表达式中引入一些当前使用<%= ...%>的逻辑来避免空值错误.除非我用<%...%>替换标记,否则会出错.但是在我构建之后,我得到一个jsp错误而不是servlet错误.我无法在此处粘贴原始代码,但<%= ...%>中的代码实质上是检索Struts 1项目中作为servlet参数传递的嵌套数组对象(更像是另一个数组对象中的数组对象).我只想添加一个try ... catch语句,以防对象的属性尚未实例化.

<%=((package.package.package.ClassName)session.getAttribute("attrName")).getObjectList()[0].getSecondObject.length%>; 
Run Code Online (Sandbox Code Playgroud)

这是一个jsp问题,还是Struts 1问题?再说一遍,2个标签之间有什么区别?

Dan*_*inu 14

<%...%>你之间你可以在java中编写你想要的任何逻辑.

使用<%=...%> 将把括号内的表达式结果输出到屏幕.所以不要写例如

<% System.out.println("Hello World") %> 
Run Code Online (Sandbox Code Playgroud)

你可以简单地写

<%= "Hello world" %> 
Run Code Online (Sandbox Code Playgroud)

基本上,<%=%>的作用是调用正在计算的表达式的toString()方法.

如果你需要添加空检查逻辑,你可以使用

 <%..%>
Run Code Online (Sandbox Code Playgroud)

这是您可以参考的链接:

http://www.easywayserver.com/jsp/JSP-example.htm http://www.tutorialspoint.com/jsp/jsp_syntax.htm