使用EL $ {XY}直接在scriptlet的<%XY%>使用EL $ {XY}直接在

2019-05-12 09:08发布

在我的项目我每天被打开的JSP时间ASIGN的变量。 我用小脚本尝试过<% %>在JSP和EL ${}这给可变后。

但似乎不工作。

 <% String korrekteAntwort=${frage.korrekteAntwort};%>
 <%session.setAttribute("korrekteAntwort", korrekteAntwort);%>

有后一个错误korrekteAntwort=${}是不是有可能在小脚本从EL ASIGN直接的变量?

Answer 1:

你混合scriptlet和EL并期望它们运行“同步”。 这是行不通的。 一个是写的JSP的旧校园的方式和另一种是写的JSP的现代生活方式 。 您应该使用一个或另一个,而不是两个。

回来的具体问题,抽油烟机下,EL通过解析变量PageContext#findAttribute() 所以只是做同样的小脚本

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

然而 ,正如所说,这是使用JSP的旧校园的方式,而不一定为“最佳”的方式,你已经在心中的功能要求,但没有告诉任何东西 。 现代JSP的方法是使用JSTL <c:set>

<c:set var="korrekteAntwort" value="${frage.korrekteAntwort}" scope="session" />

这将是session范围内可用${korrekteAntwort}从该行上,而这正是小脚本的这一行呢。



文章来源: Use EL ${XY} directly in scriptlet <% XY %>