powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / <jsp:useBean>
21 сообщений из 21, страница 1 из 1
<jsp:useBean>
    #34174499
324f4
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот решил проверить в сервлете пример с действием <jsp:useBean>. Пример должен циклически отображать три рисунка на странице. Скомпилированный класс поместил в папку classes. Рисунки скинул в папку classes/img.
Код класса:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
 public   class  Rotator 
{
 private  String images[]={"img/cpphtp5e2_small.png", "img/symplycpp_small.png"};
 private  String links [] ={"http://www.amazon.com/exec","http://www.amazon.com/exec/obidos"};
 private   int  selectedIndex= 0 ;

  public  String getImage()
{
 return  images[selectedIndex];	
}
 public  String getLink()
{
 return  links[selectedIndex];	
}

 public   void  nextAd()
{
selectedIndex =(selectedIndex+ 1 )%images.length;	
}
}
Код jsp страницы:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
[color=red]<?xml version="1.0"?>
<!DOCTYPE html  PUBLIC  "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd >
<jsp:useBean id ="rotat" scope="session" class="Rotator" />
<html xmlns ="http://www.w3.org/1999/xhtml">
<head>
<title>Пример jps useBean</title>
<style type="text/css">
.big{font-family: helvetica, arial, sans-serif;
 font-weight: bold; 
 font-size: 2em;}
</style>
<% rotat.nextAd(); %>
</head>

 <body>
 <p class="big"> Пример AdRotator</p>
 <p>
 <%= rotat.getLink()%>
 <%= rotat.getImage()%>
 <!--a href= "<jsp:getProperty name="rotator" property="link"/>"!-->
<!--img src = "<jsp:getProperty name="rotator" property="image"/>" alt="advertisement" /!--> 
</a>
</p>
</body>
</html>[/color]

При запуске Tomcat выдает ошибку:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
type Exception report

message 

description The server encountered an internal error () that prevented it from fulfilling  this  request.

exception 

org.apache.jasper.JasperException: Unable to compile  class   for  JSP

An error occurred at line:  4  in the jsp file: /jsp/jsp(bean)/adrotator.jsp
Generated servlet error:
C:\Tomcat_5\work\Catalina\localhost\jhtp1\org\apache\jsp\jsp\jsp_0028bean_0029\adrotator_jsp.java: 45 : cannot resolve symbol
symbol  :  class  Rotator 
location:  class  org.apache.jsp.jsp.jsp_0028bean_0029.adrotator_jsp
      Rotator rotat =  null ;
      ^


An error occurred at line:  4  in the jsp file: /jsp/jsp(bean)/adrotator.jsp
Generated servlet error:
C:\Tomcat_5\work\Catalina\localhost\jhtp1\org\apache\jsp\jsp\jsp_0028bean_0029\adrotator_jsp.java: 47 : cannot resolve symbol
symbol  :  class  Rotator 
location:  class  org.apache.jsp.jsp.jsp_0028bean_0029.adrotator_jsp
        rotat = (Rotator) _jspx_page_context.getAttribute("rotat", PageContext.SESSION_SCOPE);
                 ^


An error occurred at line:  4  in the jsp file: /jsp/jsp(bean)/adrotator.jsp
Generated servlet error:
C:\Tomcat_5\work\Catalina\localhost\jhtp1\org\apache\jsp\jsp\jsp_0028bean_0029\adrotator_jsp.java: 49 : cannot resolve symbol
symbol  :  class  Rotator 
location:  class  org.apache.jsp.jsp.jsp_0028bean_0029.adrotator_jsp
          rotat =  new  Rotator();
                      ^
 3  errors

Подскажите новичку, что не правильно?
...
Рейтинг: 0 / 0
<jsp:useBean>
    #34174510
Фотография Penkov Vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
класс надо в пакет поместить.


МОДЕРАТОРУ: наверно, этот вопрос следует в топ добавить
...
Рейтинг: 0 / 0
<jsp:useBean>
    #34174545
324f4
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Deadyкласс надо в пакет поместить.
В смысле -в любой пакет?

И потом этот пакет скинуть в папку classes?
МОДЕРАТОРУ: наверно, этот вопрос следует в топ добавить
...
Рейтинг: 0 / 0
<jsp:useBean>
    #34174554
324f4
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
То есть надо создать любой пакет, а потом этот пакет скинуть в папку classes?
...
Рейтинг: 0 / 0
<jsp:useBean>
    #34174584
Фотография Penkov Vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ага, типа того. чтоб было

/WEB-INF/classes/foo/Foo.class
...
Рейтинг: 0 / 0
<jsp:useBean>
    #34174680
324f4
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Deadyага, типа того. чтоб было

/WEB-INF/classes/foo/Foo.class

То есть применительно для эклипса настроить workspace как /WEB-INF/classes/foo/Foo.class?
...
Рейтинг: 0 / 0
<jsp:useBean>
    #34174722
Фотография Penkov Vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не знаю как там в еклипсе, но нужно создать такую вещь:
work - рабочий каталог, переходим в него.

Код: plaintext
1.
2.
3.
4.
[Deady@- work]$ mkdir ~/work
[Deady@- work]$ cd ~/work
[Deady@- work]$ mkdir foo
[Deady@- work]$ nano ./foo/Foo.java
пишем в Foo.java следующее:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
[Deady@- work]$ cat ./foo/Foo.java
 package  foo;

 public   class  Foo {
         public   static   void  main(String[] args) {
                System.out.println("BOOM!");
        }
}
[Deady@- work]$

далее:

Код: plaintext
1.
2.
3.
[Deady@- work]$ javac -cp . foo/Foo.java
[Deady@- work]$ java -cp . foo.Foo
BOOM!

поздравляю, вы только что научились помещать класс в пакет!
...
Рейтинг: 0 / 0
<jsp:useBean>
    #34174753
324f4
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ну а в CLASSPATH надо путь к папке(в которой находится пакет) прописывать?
...
Рейтинг: 0 / 0
<jsp:useBean>
    #34174768
mysterio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну какого вы в сервлеты (ладно уж.. вам тяжелее будет) полезли?! Так еще и читать не хотите. Это написано в любой книге по Java в первой полсотне страниц.
...
Рейтинг: 0 / 0
<jsp:useBean>
    #34174788
wessen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может это поможет
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
<?xml version="1.0"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd >

<%page import = "Rotator"%>

...
...
Рейтинг: 0 / 0
<jsp:useBean>
    #34174808
324f4
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mysterioНу какого вы в сервлеты (ладно уж.. вам тяжелее будет) полезли?! Так еще и читать не хотите. Это написано в любой книге по Java в первой полсотне страниц.
Ладно уж подкалывать. Про командную строку javac уже слышал и даже работал не раз. Сейчас мы работаем под эклипс. Нужно поменять настройки в эклипсе, чтобы пакет компилися в папку classes или можно из рабочего пространства скинуть?
...
Рейтинг: 0 / 0
<jsp:useBean>
    #34174827
mysterio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы путаете понятия workspace (которое относится к Eclipse) и CLASSPATH.
Вы не знаете, как использовать пакеты.
Вы хотите меня убедить, что хорошо знаете основы?

Если вы их хорошо выучите, то абсолютно в любой IDE таких вопросов возникать не будет.
...
Рейтинг: 0 / 0
<jsp:useBean>
    #34174874
324f4
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mysterioВы путаете понятия workspace (которое относится к Eclipse) и CLASSPATH.
Вы не знаете, как использовать пакеты.
Вы хотите меня убедить, что хорошо знаете основы?

Если вы их хорошо выучите, то абсолютно в любой IDE таких вопросов возникать не будет.
Явой я занимаюсь два месяца. Сейчас возникла необходимость создавать сервлеты.
В данный момент мы используем Эклипс.
Поставим вопрос следующим образом. В эклипсе есть workspase где компилятся все классы.
Как из эклипс скомпилировать мой пакет в папку WEB-INF/classes?
...
Рейтинг: 0 / 0
<jsp:useBean>
    #34175020
mysterio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Этот вопрос прекрасно находится в документации по eclipse.
Мне, как человеку, который с eclipse работал очень мало, потребовалось минуты две.

Тут можете прочитать.

Внимание вопрос, неужели так сложно было найти это самому? Или привыкли по первому вопросу лезть на форум?
...
Рейтинг: 0 / 0
<jsp:useBean>
    #34175042
324f4
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я тоже это нашел в эклипсе. Но все равно jsp не работает. Лучше подскажите, как с помощью javac скомпилировать мой пакет в нужную директорию.
Вот исходник:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
 package  roma;

 public   class  Rotator 
{
 private  String images[]={"img/cpphtp5e2_small.png", "img/symplycpp_small.png"};
 private  String links [] ={"http://www.amazon.com/exec","http://www.amazon.com/exec/obidos"};
 private   int  selectedIndex= 0 ;

  public  String getImage()
{
 return  images[selectedIndex];	
}
 public  String getLink()
{
 return  links[selectedIndex];	
}

 public   void  nextAd()
{
selectedIndex =(selectedIndex+ 1 )%images.length;	
}
}
Мне надо скомпилировать в папку C:\Tomcat_5\webapps\jhtp1\WEB-INF\classes\.
Rotator.java я сщхранил в той же папке: C:\Tomcat_5\webapps\jhtp1\WEB-INF\classes\
...
Рейтинг: 0 / 0
<jsp:useBean>
    #34175074
Фотография Penkov Vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если класс находится в пакете foo, то лежать он должен в WEB-INF/classes/foo/. просто скопируйте туда каталог foo и все.
...
Рейтинг: 0 / 0
<jsp:useBean>
    #34175078
Фотография Penkov Vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
то есть в вашем случае будет /WEB-INF/classes/roma/Rotator.class
...
Рейтинг: 0 / 0
<jsp:useBean>
    #34175092
mysterio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
<jsp:useBean>
    #34175122
324f4
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Deadyто есть в вашем случае будет /WEB-INF/classes/roma/Rotator.class
Я так и сделал. Скомпилировал класс с помощью javac(к сведению mysterio). Он находится в папке /WEB-INF/classes/roma/Rotator.class
Теперь JSP выбрасывает:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
org.apache.jasper.JasperException: Attempted a bean operation on a  null  object.
	org.apache.jasper.runtime.JspRuntimeLibrary.handleGetProperty(JspRuntimeLibrary.java: 601 )
	org.apache.jsp.jsp.jsp_0028bean_0029.adrotator_jsp._jspService(adrotator_jsp.java: 77 )
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java: 94 )
	javax.servlet.http.HttpServlet.service(HttpServlet.java: 802 )
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java: 324 )
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java: 292 )
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java: 236 )
	javax.servlet.http.HttpServlet.service(HttpServlet.java: 802 )
...
Рейтинг: 0 / 0
<jsp:useBean>
    #34175146
Фотография Penkov Vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
на самом деле никогда не использовал useBean, но там есть инструкция для инициализации бинов. томкат ругается, что не может найти объект в сессии - естественно он его не найдет, его же никто туда не положил
попробуйте после объявления бина написать
Код: plaintext
1.
<jsp:setProperty name="rotat" property="*" />

вообще, тут доку читать надо
...
Рейтинг: 0 / 0
<jsp:useBean>
    #34176831
VampirO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну все господа, сделал! Все работает! Дело не в javac было) Спасибо за помощь)
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / <jsp:useBean>
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]