【问题标题】:Java code statement inside jsp not executing when including in other jsp file包含在其他jsp文件中时,jsp中的Java代码语句未执行
【发布时间】:2017-01-18 09:44:31
【问题描述】:

我的项目中有一个文件夹,该文件夹中有一些 jsp 文件,我想检查每个页面上的有效会话。因此,我在 web-inf 文件夹中创建了一个包含会话检查代码的 JSP 文件,并将该文件包含到其他 jsp 文件中,但代码正在执行但 response.sendRedirect() 不起作用。

所以我有包含所有文件的 Admin 文件夹,WEB-INF/jsp/SessionValidate.jsp 文件(此文件必须包含在 admin 文件夹的文件中。请参阅代码中的 cmets

管理员/xyz.jsp

        <jsp:include page="/WEB-INF/jsp/SessionValidate.jsp"></jsp:include>

WEB-INF/jsp/SessionValidate.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
    <%
    if(session.getAttribute("Roles")==null){
        response.sendRedirect("/Shopping/Login");
        <!-- response.sendRedirect(..) -->
        System.out.println("hello2");
        <!-- Hello is printing -->
    }
    else{
            if(!session.getAttribute("Roles").equals("ADM")){
                response.sendRedirect("/Shopping/User");
            }
            else{%>
                <jsp:include page="/WEB-INF/jsp/admin.jsp"></jsp:include>
            <%}
        }%>

因此,当我将此代码直接粘贴到 xyz.jsp 中时,它可以正常工作,但不是这样。

【问题讨论】:

  • 实际上可以调试带有java代码的jsp,如果你在页面中放置一个调试点,它会停在那里吗?如果你在包含的jsp中放入一些简单的html代码,它会显示吗?
  • 是的,代码正在执行 Hello 正在打印,这意味着 if 条件正在触发但未重定向
  • 问题在这里得到解答:Include another JSP file

标签: java jsp servlets


【解决方案1】:

你正在做一个动态包含

 <jsp:include page="....

试试这个语法

<%@ include file="/WEB-INF/jsp/SessionValidate.jsp" %>

【讨论】:

  • 感谢它现在的工作。正确的语法是
猜你喜欢
  • 1970-01-01
  • 2010-09-22
  • 2017-10-25
  • 2016-02-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多