如何在JSTL中正确使用核心标签

问题描述 投票:0回答:1

所以我有一个会话对象,我想检索一些数据:

<%
HashMap<String, String> session = (HashMap<String, String>) session.getAttribute("ses");
%>

为此人建议尽可能使用JSTL,因为在JSP中这样做会更有效:

<c:if test="<%= !session.containsKey(request.getParameter('username')) %>">
<%
session.put(request.getParameter("username"), request.getParameter("password"));
%>

这是使用JSTL标签的正确方法吗?这给了我一个“无效的字符常量”错误。这可能是因为使用了单引号,但是如果我不使用它们,则会收到另一个错误消息:

is quoted with ["] which must be escaped when used within the value
jsp jstl
1个回答
-1
投票

您可以尝试如下:

<c:if test="${ not ses.containsKey('${param.username}')}">
   session.put(request.getParameter("username"), request.getParameter("password"));    
</c:if>

这里,not是与!相同的运算符。ses是根据您的代码在session范围内的属性名称。param用于获取request范围内的值。

© www.soinside.com 2019 - 2024. All rights reserved.