首页 > 解决方案 > 如何在另一个 jsp 文件中使用 jsp 变量?

问题描述

我有两个 jsp 文件,一个是 NewFile.jsp,另一个是 index.jsp

我想在 NewFile.jsp 中使用变量(在 index.jsp 中定义)。

所以我把这一行放在“NewFile.jsp”中:

<%@ include file = "index.jsp" %>

但是页面加载了 HTTP 状态 500 内部服务器错误,它说:

org.apache.jasper.JasperException: 행 [13]에서 [/index.jsp]을(를) 처리하는 중 예외 발생

10:         out.println("can't access");
11:     }
12:     else {
13:         int age = Integer.parseInt(request.getParameter("age"));
14:         double height = Double.parseDouble(request.getParameter("height"));
15:         boolean sex = Boolean.parseBoolean(request.getParameter("female"));
16:         

它说:[13]行是错误的。(它是用韩文写的,但我想你能理解。)

我在 NewFile.jsp 中有这些行:

 function doAction(){
                    var req = createRequest();
                    if (req == null){
                        alert("실행이 되지 않는다!");
                        return ;
                    }
                    var hei = document.getElementById("height").value;
                    var ag = document.getElementById("age").value;
                    var fem = document.getElementById("female").checked;
                    req.open("GET", "index.jsp?female=" + encodeURI(fem) + "&age=" + encodeURI(ag) + "&height=" + encodeURI(hei));
                    req.setRequestHeader("User-Agent", "XMLHttpRequest");
                    req.onreadystatechange = function() {
                        if (this.readyState == 4 && this.status == 200){
                            var msg = document.getElementById('msg');
                            msg.innerHTML = this.responseText;
                        }
                    }
                    req.send();
                  }

    

我认为文件在请求中交互时出现错误。

当我擦除时<%@ include file = "index.jsp" %>,它运行良好(但不在 NewFile.jsp 中使用 index.jsp 变量)。

但我不知道如何修改它。

如何在 NewFile.jsp 中使用 index.jsp 中定义的变量?

标签: javajsp

解决方案


从描述中不清楚您要做什么。似乎您在第 13 行得到了一个空引用。如果您将年龄作为请求参数传递,那么“共享变量”根本没有意义。
这是一个演示如何共享变量的工作示例:

<!-- hello.jsp -->
<%
    String hi = "Hello from hello.jsp";
    request.setAttribute("hi", hi);
%>

<!-- index.jsp -->
<jsp:include page="hello.jsp"/>
<%=request.getAttribute("hi") %>

请记住,非常不鼓励使用 JSP scriptlet。检查这篇文章以获得更深入的细节。


推荐阅读