直接在scriptlet 中使用EL $ {XY}

在我的项目中,我每次打开JSP时都要对变量进行设置。 我在JSP和EL ${}使用scriptlet 进行了尝试,它将变量返回。

但它似乎不起作用。

    

korrekteAntwort=${}之后出现错误,是不是可以在scriptlet中直接从EL中转换变量?

你正在混合scriptlets和EL,并期望它们“同步”运行。 那是行不通的。 一种是用旧写的方式编写JSP , 另一种是编写JSP的现代方法 。 你应该使用其中一个,而不是两个。

回到具体问题,在引擎盖下,EL通过PageContext#findAttribute()解析变量。 所以在scriptlet中做同样的事情。

 Frage frage = (Frage) pageContext.findAttribute("frage"); session.setAttribute("korrekteAntwort", frage.getKorrekteAntwort()); 

然而 ,正如所说的,这是一种使用JSP的老式学习方式,并不一定是你想到的function要求的“最佳”方式,但没有说明任何事情 。 现代JSP方式将使用JSTL

  

这将在会话范围内以${korrekteAntwort}从该行开始,这正是该行的scriptlet所做的。