如何将java变量从scriptlet传递到c:当jstl中的表达式?

在jstl中使用scriptlet变量的正确方法是什么? 我不知道我的代码有什么问题:

         

看起来它并没有进入整个区块。

在JSTL中无法看到scriptlet中的变量,因为表达式语言(JSTL中使用的${}之间的东西)将在页面,请求,会话或应用程序中查找属性。 您必须至少将scriptlet中的变量存储在其中一个范围中,然后使用它。

这是一个例子:

 <% boolean a = true; request.setAttribute("a", a); %>    

更多信息:

  • 表达式语言StackOverflow wiki
  • JSTL StackOverflow wiki

作为建议,请停止使用scriptlet。 将JSP中的业务逻辑移动到控制器,将视图逻辑移动到EL,JSTL和其他标签,如 。 更多信息: 如何避免JSP文件中的Java代码?

JSP的默认范围是page。 如果你想将scriplet的变量用于JSTL,请使用以下代码。

 <% boolean a = true; boolean b = false; pageContext.setAttribute("a", a); pageContext.setAttribute("b", b); %> 

然后它将在JSTL中使用。