Доступно и всерьез о людях и  взаимоотношениях между ними
Добро пожаловать в Socionics.org Войти | Регистрация | Помощь
in Найти
.

Cессии в JSP

Последний ответ: btw.   09-08-2008, 18:34   Ответов: 1
Сортировать сообщения: Previous Next
  •  09-08-2008, 16:37 1316075

    Как пользоваться правильно этой лажей? А то я ужо третий день мучаюсь, не могу каменный цветок... Есть одна странтца жсп которая создаёт аррэй(таблица?) и засовывает её в session(класс HttpSession), а потом следующая страница просит эту таблицу у сессии. Вроде бы сессия должна возвращать int[], а возвращает Object и никакой тайпкастинг не помогает. И она овзрвращает объект типа Object в любос лучае, пусть это таблица интегралов. Со стрингами работает.

    [code]<%

        session = request.getSession(true);
        session.setAttribute("num", 2);
       
       
        int[] as = new int[10];
        as[0] = (int)session.getAttribute("num");
       
        session.setAttribute("prodId", as);
           
        int[] aa = (int[])session.getAttribute("prodId");

    %>

    <html>
    <body>
        <%= aa[0] %>
    </body>
    </html>[/code]

    Вот такую ошибку выдайот:
    [code]org.apache.jasper.JasperException: Unable to compile class for JSP:

    An error occurred at line: 8 in the jsp file: /tests/ss.jsp
    Cannot cast from Object to int
    5:    
    6:    
    7:     int[] as = new int[10];
    8:     as[0] = (int)session.getAttribute("num");
    9:    
    10:     session.setAttribute("prodId", as);
    11:
    [/code]
  •  09-08-2008, 18:34 1316076 in reply to 1316075

    Le Merdeur:
    ...[code]org.apache.jasper.JasperException: Unable to compile class for JSP:

    ну загляни в директорию %CATALINA_HOME%\work (и далее по тексту... разберёшься) и посмотри во что "джаспер" оттранслировал эту маету.
    скорей всего всё станет тут же и кристально ясТно.

    PS: я как-то привык к другому синтаксису, типа "int[] array = (int[])session.getAttribute("blah-blah-blah");

    PPS: >> 8:     as[0] = (int)session.getAttribute("num");
    вообще-то действительно не может кастить объект к инту. По идее де-факто ты (в ответ) получаешь Integer; из Integer-ра "unboxing" действительно делается автоматически (если настроил джаспер на 1.5), но не из объекта (как прописано в прототипе метода .getAttribute(String)).
    Попробуй переписать так: as[0] = (Integer)session.getAttribute("num");


    Only two things are infinite, the universe and human stupidity, and I'm not sure about the former. ©
Показать как RSS feed в формате XML


Библус - все книги России. Журнал Аделаида. Планета Аквариум.

Community Server