为了账号安全,请及时绑定邮箱和手机立即绑定

Thymleaf如何实现JSTL对httpsession中对象的空值判断

Thymleaf如何实现JSTL对httpsession中对象的空值判断

森栏 2019-01-19 21:03:46
<c:choose> <c:when test="${empty login}"> <li><a href="../index/loginUI.do"><i class="fa fa-user"></i>注册/登录</a> </li> </c:when> <c:otherwise> <li><a href="../index/mycenter.do"><i class="fa fa-user"></i>个人中心</a></li> <li><a href="../index/logout.do"><i class="fa fa-user"></i>退出登录</a> </li> </c:otherwise> </c:choose> 这是我在JSTL中写的,可以成功运行,无任何异常 <li><a th:href="@{/login/loginUI}" th:if="${#httpSession.login}eq null"><i class="fa fa-user-md"></i>管理员登陆</a> </li> <li><a th:href="@{/index/loginUI}" th:if="${#httpSession.login}eq null"><i class="fa fa-user"></i>注册/登录</a> </li> <li><a th:href="@{/index/mycenter}" th:unless="${#httpSession.login} eq null"><i class="fa fa-user"></i>个人中心</a></li> <li><a th:href="@{/index/logout}" th:if="${#httpSession.login} ne null"><i class="fa fa-user"></i>退出登录</a> </li> 但是我在thymleaf中使用时总是无法找到login 然后是我的java代码 @RequestMapping("/index") public ModelAndView index(HttpServletRequest request, HttpServletResponse response) { Page page = new Page("filter_form"); page.setPageSize(8); String currentPage = request.getParameter("page.currentPage"); if (StringUitl.IsNotNull(currentPage)) { page.setCurrentPage(Integer.parseInt(currentPage)); } //拼装map进行查询 Map<String, Object> map = new HashMap<String, Object>(); map.put("page", page); List list = changguanService.getForPage(map); //展示的数据 request.setAttribute("list", list); request.setAttribute("paging", page.getPageStr()); System.out.println(page.getPageStr()); return new ModelAndView("index/index"); } @RequestMapping("/login") public void login(HttpServletRequest request, HttpServletResponse response, HttpSession httpSession) throws IOException { String pwd = request.getParameter("pwd"); String no = request.getParameter("no"); response.setCharacterEncoding("utf-8"); Login login = (Login) httpSession.getAttribute("login"); if (login == null) { User user = userService.checkUserNo(no, pwd); if (user == null) { response.setContentType("text/html;charset=utf-8"); response.getWriter().write("<script>alert('账号密码错误');</script>"); response.getWriter().write("<script> window.location='../index/index' ;window.close();</script>"); response.getWriter().flush(); } login = new Login(user.getId(), user.getName(), "user", ""); httpSession.setAttribute("login", login); } response.setContentType("text/html;charset=utf-8"); response.getWriter().write("<script>alert('登录成功');</script>"); response.getWriter().write("<script> window.location='../index/index' ;window.close();</script>"); response.getWriter().flush(); } 请问thymleaf如何才能实现jstl的这种直接判断未创建对象的空值问题
查看完整描述

1 回答

?
三国纷争

TA贡献1804条经验 获得超7个赞

过于执着httpsession的类型,仔细阅读了文档,发现session.login就可以直接拿到值

        <li><a th:href="@{/login/loginUI}" th:unless="${session.login} ne null"><i class="fa fa-user-md"></i>管理员登陆</a>
    </li>
        <li><a th:href="@{/index/loginUI}" th:unless="${session.login} ne null"><i class="fa fa-user"></i>注册/登录</a>
        </li>
        <li><a th:href="@{/index/mycenter}" th:if="${session.login}"><i class="fa fa-user"></i>个人中心</a></li>
        <li><a th:href="@{/index/logout}" th:if="${session.login}"><i class="fa fa-user"></i>退出登录</a>
        </li>
查看完整回答
反对 回复 2019-02-12
  • 1 回答
  • 0 关注
  • 1114 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信