首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我的会话对象未清除

我的会话对象未清除
EN

Stack Overflow用户
提问于 2018-01-19 19:25:41
回答 2查看 348关注 0票数 0

在我的控制器中,我想清除我的对象"parking“:

代码语言:javascript
复制
@Controller
@SessionAttributes(value = "parking", types = { Parking.class })
@RequestMapping("/parking")
public class ParkingController {

    /**
     * vue parking.html
     */
    private static final String VIEW_PARKING = "parking";

@RequestMapping(method = RequestMethod.POST, params = { "clearForm" })
public String clearForm(@ModelAttribute("parking") Parking parking,
        final HttpSession httpSession, SessionStatus sessionStatus) {
    sessionStatus.setComplete();    
    return VIEW_PARKING;
}

我尝试了sessionStatus.setComplete();,也尝试了httpSession.invalidate(),但是当页面重新加载时,我的对象仍然填充了以前的条目。

以下是由parking内容填充的html代码的示例:

代码语言:javascript
复制
<form action="#" th:action="@{/parking}"
    th:object="${parking}" method="post" class="form-horizontal">

<div class="col-sm-offset-2 col-sm-10">
  <button type="submit" class="btn btn-primary btn-lg"
    name="clearForm">Remise à zéro du formulaire</button>
</div>

<input type="text" th:field="*{email.destinataires}"
    class="form-control" />

作为parking对象的属性的email

在调试模式下,我已经检查了所显示的代码是否已执行。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-01-26 23:15:24

Do Nhu Vy解决方案几乎很好,我只需要添加一个get重定向,这样解决方案就能正常工作:

代码语言:javascript
复制
@RequestMapping(method = RequestMethod.GET, params = {"clearForm"})
public String clearForm(@ModelAttribute("parking") Parking parking, WebRequest request, SessionStatus sessionStatus) {
    sessionStatus.setComplete();
    request.removeAttribute("parking", WebRequest.SCOPE_SESSION);
    return "redirect:/" +VIEW_PARKING;
}
票数 0
EN

Stack Overflow用户

发布于 2018-01-19 21:05:32

你可能把@SessionScope@RequestScope搞混了。后者在页面重新加载之间自动失效。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48340049

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档