【问题标题】:How to evaluate a scriptlet variable in EL?如何评估 EL 中的 scriptlet 变量?
【发布时间】:2021-05-02 09:57:22
【问题描述】:

我想知道在<c:if> 语句中是否有使用JSP。

例如

<c:if test="${ param.variable1 == 'Add' <% JSP variable clause %>}">

所以我也希望检查我的 JSP 变量。

有什么建议吗?我曾经无知地尝试过只是坚持从句,显然它没有用。

谢谢

【问题讨论】:

    标签: jsp scope el scriptlet


    【解决方案1】:

    所以你想在 EL 中评估一个 scriptlet 变量?将其存储为请求属性。

    <%
        String var = "some";
        request.setAttribute("var", var);
    %>
    
    <c:if test="${param.variable1 == 'Add' && var == 'some'}">
    

    但是,这没有任何意义。您应该完全avoid scriptlets 并使用 JSTL/EL 来准备这个变量。因此,如果您使功能要求更加清晰,例如“如何使用 JSTL/EL 执行此操作(插入 scriptlet 代码 sn-p)?”,然后我们将能够建议正确的方法。

    例如,您可以使用&lt;c:set&gt; 在 EL 范围内设置变量。

    <c:set var="var" value="some" scope="request" />
    

    另见:

    【讨论】:

    • 只是想尝试一下,我尝试 not 将其添加到请求范围内,认为无论如何它都可以在页面范围内使用。所以我在 EL 中使用页面范围明确请求它:pageScope.var。果然,它没有用。奇怪的是,当在 EL 中简单地使用 var 时,它确实工作,而不必将变量放在请求范围内的 scriptlet 代码中。我错过了什么?
    • 为什么使用请求上下文?更简单、更本地化的是&lt;% pageContext.setAttribute("var", "some"); %&gt;
    猜你喜欢
    • 1970-01-01
    • 2011-04-18
    • 1970-01-01
    • 2011-04-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多