如何使用EL表达式在JSP中设置cookie的值?

4
我在尝试在 JSP 中使用 EL 表达式设置 cookie 值而不直接使用 Java 代码。我知道我可以通过创建自定义标签库来实现,但我想要保持简单,所以我正在尝试使用访问 cookies 的相同方式:使用 EL 表达式。 我知道我可以使用 JSP EL 表达式 ${cookie['cookieName'].value} 读取 cookie 的值,但是如何使用 EL 设置特定的 cookie 值呢?我找到了在 JSP 中使用 Java 代码解决此问题的方法,但我想避免这样做。 到目前为止,我发现可以使用 c:set 标签设置变量,但该标签不接受表达式作为“var”参数,因此我无法执行类似以下的操作:
<c:set var="${cookie['cookieName'].value}" value="123" />

我认为解决方法是,但我不知道var部分应该用什么表达式,以及如何编写代码使得我可以设置cookie的值而不仅仅是一个变量。

非常感谢您的帮助!


2
我相信这不是你要找的答案...https://dev59.com/qWPVa4cB1Zd3GeqP2A1L - Sumit
1个回答

7

在JSP中没有标准表达式来设置cookie。如果您想要,可以使用自定义标记OR使用JSP无脚本。

<%

    javax.servlet.http.Cookie cookie 
           = new javax.servlet.http.Cookie("name", "value");

    // cookie.setXXX()

    response.addCookie(cookie);

%>

注意:确保在响应提交之前添加cookie。


我最终做了这样的事情。自定义标签不起作用,因为我们无法从自定义标签内部访问响应对象,但是在头文件中使用这个小的Java代码块解决了问题。谢谢! - Edy Bourne

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接