直接在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所做的。