Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / <jsp:useBean> / 21 сообщений из 21, страница 1 из 1
04.12.2006, 13:06:25
    #34174499
324f4
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
<jsp:useBean>
Вот решил проверить в сервлете пример с действием <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
04.12.2006, 13:09:13
    #34174510
Penkov Vladimir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
<jsp:useBean>
класс надо в пакет поместить.


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

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

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

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

То есть применительно для эклипса настроить workspace как /WEB-INF/classes/foo/Foo.class?
...
Рейтинг: 0 / 0
04.12.2006, 13:57:15
    #34174722
Penkov Vladimir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
<jsp:useBean>
не знаю как там в еклипсе, но нужно создать такую вещь:
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
04.12.2006, 14:02:50
    #34174753
324f4
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
<jsp:useBean>
ну а в CLASSPATH надо путь к папке(в которой находится пакет) прописывать?
...
Рейтинг: 0 / 0
04.12.2006, 14:07:14
    #34174768
mysterio
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
<jsp:useBean>
Ну какого вы в сервлеты (ладно уж.. вам тяжелее будет) полезли?! Так еще и читать не хотите. Это написано в любой книге по Java в первой полсотне страниц.
...
Рейтинг: 0 / 0
04.12.2006, 14:11:41
    #34174788
wessen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
<jsp:useBean>
Может это поможет
Код: 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
04.12.2006, 14:15:19
    #34174808
324f4
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
<jsp:useBean>
mysterioНу какого вы в сервлеты (ладно уж.. вам тяжелее будет) полезли?! Так еще и читать не хотите. Это написано в любой книге по Java в первой полсотне страниц.
Ладно уж подкалывать. Про командную строку javac уже слышал и даже работал не раз. Сейчас мы работаем под эклипс. Нужно поменять настройки в эклипсе, чтобы пакет компилися в папку classes или можно из рабочего пространства скинуть?
...
Рейтинг: 0 / 0
04.12.2006, 14:21:00
    #34174827
mysterio
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
<jsp:useBean>
Вы путаете понятия workspace (которое относится к Eclipse) и CLASSPATH.
Вы не знаете, как использовать пакеты.
Вы хотите меня убедить, что хорошо знаете основы?

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

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

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

Внимание вопрос, неужели так сложно было найти это самому? Или привыкли по первому вопросу лезть на форум?
...
Рейтинг: 0 / 0
04.12.2006, 15:09:08
    #34175042
324f4
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
<jsp:useBean>
Я тоже это нашел в эклипсе. Но все равно 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
04.12.2006, 15:15:43
    #34175074
Penkov Vladimir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
<jsp:useBean>
если класс находится в пакете foo, то лежать он должен в WEB-INF/classes/foo/. просто скопируйте туда каталог foo и все.
...
Рейтинг: 0 / 0
04.12.2006, 15:16:13
    #34175078
Penkov Vladimir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
<jsp:useBean>
то есть в вашем случае будет /WEB-INF/classes/roma/Rotator.class
...
Рейтинг: 0 / 0
04.12.2006, 15:18:38
    #34175092
mysterio
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
<jsp:useBean>
...
Рейтинг: 0 / 0
04.12.2006, 15:25:36
    #34175122
324f4
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
<jsp:useBean>
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
04.12.2006, 15:30:32
    #34175146
Penkov Vladimir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
<jsp:useBean>
на самом деле никогда не использовал useBean, но там есть инструкция для инициализации бинов. томкат ругается, что не может найти объект в сессии - естественно он его не найдет, его же никто туда не положил
попробуйте после объявления бина написать
Код: plaintext
1.
<jsp:setProperty name="rotat" property="*" />

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


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