java语句转换为JSTL与EL表达式

if(session.getAttribute("account")!=null){session.removeAttribute("account");}Cookie[... if(session.getAttribute("account")!=null)
{
session.removeAttribute("account");
}
Cookie[] cookies=request.getCookies();
if(cookies!=null)
{
for(int i=0;i<cookies.length;i++){
cookies[i].setMaxAge(0);
response.addCookie(cookies[i]);
}
}
response.sendRedirect("SignOnForm.jsp");
求大神把上面的java语句转换为JSTL与EL表达式
展开
 我来答
teashit
2015-05-01 · 超过17用户采纳过TA的回答
知道答主
回答量:26
采纳率:0%
帮助的人:32.6万
展开全部

尝试了下:

由于jstl不能调用方法,因为你的是setMaxAge(0);如果知道有什么name的cookie的话可尝试用c:set value=0来代替(forEach是不行的),但是

response.addCookie(cookies[i]);不能用jstl表示出来

<c:if test="${sessionScope.account!=null}">
    <c:remove var= "account" scope="session"/>
</c:if>
<c:set target="${cookie.a}" property="maxAge" value="0" />
<c:set target="${cookie.b}" property="maxAge" value="0" />
<c:set target="${cookie.c}" property="maxAge" value="0" />
<%--  ...... --%>
<%
Cookie[] cookies=request.getCookies();
if(cookies!=null) {
    for(int i=0;i<cookies.length;i++){
      response.addCookie(cookies[i]);
  }
}
%>
<c:redirect url="SignOnForm.jsp">

答案:用jstl是实现不了的。。


像这样的代码不能写在controller吗?不要在jsp写这样的代码


如果实在不想写在controller里。。。1.可以选择用 jstl+jsp:userbean标签实现,自己写一个自定义的javabean,来传Request和response进去,在setpropery的时候完成你上述代码操作。

2。可以用js  cookie做。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式