如何在 EL 中计算 scriptlet 变量?

发布于 2024-11-07 01:47:06 字数 253 浏览 3 评论 0原文

我想知道是否有在 语句中使用 JSP 的方法。

例如

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

,我希望我的 JSP 变量也能进行检查。

有什么建议吗?我无知地尝试只是坚持该条款,显然它不起作用。

谢谢

I was wondering if there was anyway of using JSP in <c:if> statement.

E.g.

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

So I want my JSP variable to checked against as well.

Any suggestions? I have tried ignorantly just sticking in the clause, obviously it did not work.

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

过度放纵 2024-11-14 01:47:06

那么您想在 EL 中计算 scriptlet 变量吗?将其存储为请求属性。下面的示例将使其可用为 ${foo}

<%
    String foo = "some";
    request.setAttribute("foo", foo);
%>

<c:if test="${param.variable1 == 'Add' && foo == 'some'}">

然而,这是没有意义的。您应该完全避免scriptlet并使用 JSTL/EL 来准备这个变量。因此,如果您使功能需求更加清晰,例如“我如何使用 JSTL/EL 执行此操作(插入 scriptlet 代码片段)?”,那么我们将能够建议正确的方法。

例如,您可以使用 在 EL 作用域中设置变量。

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

或者,如果 JSP 由 servlet 转发,则立即使用 request.setAttribute()

String foo = "some";
request.setAttribute("foo", foo);
request.getRequestDispatcher("/WEB-INF/your.jsp").forward(request, response);

然后,这将以相同的方式作为 ${foo} 提供。

另请参阅:

So you want to evaluate a scriptlet variable in EL? Store it as a request attribute. The below example will make it available as ${foo}.

<%
    String foo = "some";
    request.setAttribute("foo", foo);
%>

<c:if test="${param.variable1 == 'Add' && foo == 'some'}">

However, this makes no sense. You should avoid scriptlets altogether and use JSTL/EL to prepare this variable. So if you make the functional requirement more clear, e.g. "How do I do this (insert scriptlet code snippet) using JSTL/EL?", then we'll be able to suggest the right approach.

For example, you could use <c:set> to set a variable in EL scope.

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

Or if the JSP is forwarded by a servlet, then use request.setAttribute() over there right away.

String foo = "some";
request.setAttribute("foo", foo);
request.getRequestDispatcher("/WEB-INF/your.jsp").forward(request, response);

This will then be available as ${foo} the same way.

See also:

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文