Импорт не может быть разрешен с помощью JSP

Я пытаюсь вызвать класс Java со страницы JSP. Я создал проект с помощью JDeveloper.

Я получаю сообщение об ошибке «Импорт не может быть разрешен». Я добавил файл класса в корневую папку WEB-INF и попытался скомпилировать, но все равно показывает ту же ошибку.

Ниже приведен код:

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"/>
    </head>
    <body>
        <p>  
            <%@ page import="java.util.*"%>
            <%@ page import="Class1"%>
            <% 
                Class1 tc=new Class1("test");
                out.print(tc.str);
            %>
        </p>
    </body>
</html>

person user1884132    schedule 07.12.2012    source источник
comment
Это должно решить вашу проблему. stackoverflow.com/questions/1540857/   -  person Sai Surya    schedule 26.01.2017


Ответы (4)


вы должны указать полное имя для вашего класса. (packagename.classname), например:

    <%@ page import="pkgname.Class1"%>
person PermGenError    schedule 07.12.2012
comment
класс не упакован. Нужна ли упаковка? - person user1884132; 07.12.2012
comment
@user1884132 user1884132 да, вы должны упаковать свой класс. это плохая практика, если не упаковать их. проверьте эту ссылку для получения более подробной информации coderanch.com/how-to/java/PackageYourBeans - person PermGenError; 07.12.2012
comment
У меня была аналогичная ошибка, которая привела меня сюда. У меня было ‹%@ page import=main.java.model.* %›, в результате чего CompanyDAO не разрешалась при запуске JSP. Я повторил строку и заменил * на CompanyDAO следующим образом: ‹%@ page import=main.java.model.CompanyDAO %›. К моему большому удивлению, это решило проблему. И да, найдите время, чтобы поместить весь свой код в пакеты. Я не очень люблю CodeRanch. Я разобрался с пакетами в Eclipse, преобразовав беспорядок, который я сделал, в то, что Eclipse хотел для веб-приложения. - person Richard Bradley Smith; 16.04.2019

Директивы страницы обычно размещаются в верхней части JSP. Также я предполагаю, что Class1 находится в пакете по умолчанию, поскольку у него нет полного имени. Если Class1 находится в пакете, вам нужно указать префикс имени в импорте с именем пакета.

<%@ page import="java.util.*" %>
<%@ page import="Class1" %>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"/>
</head>
<body>
    <p>
<%
Class1 tc=new Class1("test");
out.print(tc.str);
  %>
    </p>
</body>
person Kevin Bowersox    schedule 07.12.2012
comment
я не думаю, что было бы действительно важно объявлять их в теге body - person PermGenError; 07.12.2012
comment
@GanGnaMStYleOverFlowErroR это было скорее предложение по стилю или передовой практике. - person Kevin Bowersox; 07.12.2012
comment
@km да, это хорошая практика, но она не решит ошибку компилятора, не так ли? - person PermGenError; 07.12.2012
comment
@GanGnaMStYleOverFlowErroR согласился. Меня также интересует, упакован ли класс. Раньше я работал с Jdeveloper, сочувствую всем, кто использует этот инструмент. - person Kevin Bowersox; 07.12.2012
comment
@km, как видно из его JSp, это может быть единственно возможным случаем. - person PermGenError; 07.12.2012
comment
Привет всем, спасибо за быстрые ответы.... Класс Class1 не упакован. Если я ввожу другое имя класса (класс, который не существует), то JDeveloper показывает, что класс ошибки не найден с желтым подчеркиванием. Если я ввожу правильное имя класса, ошибка редактора устраняется, однако я получаю эту ошибку при компиляции. Я попытался добавить путь к классу этого каталога, но ошибка продолжала появляться. Спасибо. - person user1884132; 07.12.2012

Во-первых, /WEB-INF/src - это неправильное место для хранения ваших исходников Java (поскольку содержимое папки WEB-INF развернуто на вашем сервере); вы должны переместить их из /WEB-INF (например, в /src в корне проекта)

В любом случае вам нужно сообщить Eclipse, где находятся ваши исходники и где вы хотите создавать классы. Это делается в диалоге свойств проекта:

  1. Щелкните правой кнопкой мыши свой проект в Eclipse, выберите «Свойства».

  2. Нажмите на путь Java Build слева.

  3. Щелкните вкладку источника справа.

  4. Нажмите кнопку «Добавить папку» и добавьте исходную папку (/WEB-INF/src или куда вы ее переместили)

  5. Убедитесь, что Разрешить выходные папки для исходных папок отмечен ниже

  6. В недавно добавленном исходном пути выберите выходную папку и укажите ее в /WEB-INF/classes или в другом месте по вашему выбору.

person Sai Surya    schedule 26.01.2017

Вы не должны повторять теги директив, такие как <%@ page import ......%>. Но вы можете повторить значения в самом значении атрибута импорта, например <%@ page import="java.util.*, java.io.*"%>, и обязательно указать полное имя для импорта.

person mohammed bughdadi    schedule 08.03.2021