클래스 및 함수를 포함하는 비표준 방식을 사용하는 이전 JSP 시스템을 지원합니다. 클래스 파일을 작성하고 jar 파일로 컴파일하는 대신 클래스는 "하위"JSP로 직접 작성된 다음 "상위"JSP에 포함됩니다.JSP가 다른 JSP의 클래스 및 함수를 인식하지 못함
제가 가지고있는 문제는 IDE가 include 문에서 파일을 인식하더라도 JDeveloper에서 MyClass 및 ChildFunction()이 정의되지 않았다는 오류 메시지가 나타납니다. 2 개의 JSP를 서버에 놓으면 페이지가로드되어 예상 된 결과와 함께 실행됩니다. 결과적으로 실제 코드를 작업 할 때 백 가지 이상의 구문 오류가있는 1000 개 이상의 JSP가 있으므로 서버에 놓을 때까지 코드가 구문 상 올바른지 확인할 수 없습니다. 클래스 로더 오류 또는 잘못된 구성과 같은 간단한 (바보 같은) 무언가를 기대하지만, 나는 그것을 고칠 수 없었다. 어떤 도움이라도 대단히 감사합니다.
나는 아래 두 개의 스텁 파일을 포함 시켰습니다:
MyClass.jsp 파일 :
<%@ page import="java.lang.*,java.net.*,java.text.*,javax.servlet.http.*" %>
<%!
class MyClass() {
public MyClass() { super(); }
private int it=0;
public void setIt (int it) {this.it = it; }
public int getIt() { return it; }
}
public String ChildFunction(){
return " ChildFunction ";
}
%>
Parent.jsp의 FILE : 누군가가 나에 코드를 넣을 것을 제안하기 전에
<%@ page contentType="text/html;charset=WINDOWS-1252"%>
<%@ page language="java" session="true" import="java.lang.*,java.net.*,java.text.*,javax.servlet.http.*" %>
<HTML>
<HEAD><TITLE>Test page</TITLE></HEAD>
<BODY>
<%@ include file="./MyClass.jsp" %>
<br>Result of calling Child Function:<% out.print(ChildFunction()); %>
<br>Result of declaring MyClass:
<%
MyClass mc = new MyClass();
out.print(mc.getIt());
%>
</BODY>
</HTML>
클래스 파일을 만들고 EAR/WAR 파일을 사용하여 배포하는 것은 옵션이 아닙니다. 이것은 내가 지원해야 할 기존 레거시 시스템입니다.