Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> struts2 session 
:(
    Опции темы
Christoph
Дата 14.8.2010, 15:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 667
Регистрация: 23.1.2008
Где: Харьков

Репутация: нет
Всего: 11



Хочу получить из сессии значение в jsp, но не знаю как???
Код

public class SimpleAction extends ActionSupport implements SessionAware {
    public String getPassword() {
        return password;
    }
    private Map session;

    public void setSession ( Map session )
         {
              this.session = session;
         }

    

    public void setPassword(String password) {
        this.password = password;
    }

    private String password;

    public String getLogin() {
        return login;
    }

    public void setLogin(String login) {
        this.login = login;
    }

    private String login;

    public String getMess() {
        return mess;
    }

    public void setMess(String mess) {
        this.mess = mess;
    }

    private String mess;

    public String execute() {
           Connection conn = null;

        try {
            String userName = "root";
            String password = "admin";
            String url = "jdbc:mysql://localhost/usersl";
            Class.forName("com.mysql.jdbc.Driver").newInstance();
            conn = DriverManager.getConnection(url, userName, password);
            Statement st = conn.createStatement();
            ResultSet res = st.executeQuery("select* from users;");
            while (res.next()) {
                if (res.getString(1).equals(getLogin()) && (res.getString(2).equals(getPassword()))) {
                    setMess("Пользователь успешно зашел на сайт");
                    session.put("admin","1");
                    return SUCCESS;
                }
            }
        }
        catch (Exception e) {

        }
        finally {
            if (conn != null) {
                try {
                    conn.close();

                }
                catch (Exception e) { /* ignore close errors */ }
            }
        }
        

        return SUCCESS;
    }



а вот сам результат jsp
Код

<div class="leftbar">
      <% session.getAttribute("admin");%>
      <s:property value="mess"></s:property>
</div>


<% session.getAttribute("admin");%> не канает, пишет что cannot resolve method getAttribute
Может разные сессии создаются, не знаю в чем ошибка


--------------------
user posted image
PM MAIL ICQ   Вверх
lazycat
Дата 14.8.2010, 23:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 227
Регистрация: 15.7.2007

Репутация: нет
Всего: 1



То, что Ваш код не работает - вполне естественно.

1. Вы совершенно правильно решили, что предопределенная переменная session из JSP и объявленная Вами переменная session - это разные переменные. В этом Вы можете убедиться, просмотрев код сервлета, генерируемого по Вашему JSP. В сервере Tomcat этот файл "закопан" глубоко в подкаталогах Work. Найти его можно по имени. Если Ваш файл JSP - foo.jsp, то сгенерированный файл сервлета foo_jsp.java. 
(Если Вы пользуетесь другим сервером приложений, можно поискать по содержимому).
Посмотрите java-код и Вы увидите там переменную session.
Кроме того Ваша session имеет тип Map, а в JSP переменная session типа HttpSession. 

2. Даже если бы с сеансом было все в порядке, Вы бы не увидели результата. Для того, чтобы он отобразился надо вместо 

 <% session.getAttribute("admin");%>

написать

 <%= session.getAttribute("admin");%>

Больше ничего сказать не могу, т.к. Ваше описание чрезвычайно краткое и составить представление о происходящем для меня крайне сложно. (Судя по количеству ответов, для других тоже).
PM MAIL   Вверх
Christoph
Дата 15.8.2010, 20:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 667
Регистрация: 23.1.2008
Где: Харьков

Репутация: нет
Всего: 11



Сессия httpSession одинаковая ...

Код

<div class="leftbar">

      <%  String str= (String) session.getAttribute("admin");
          if (str=="id1") { %>
      <s:property value="mess"></s:property>
      <% } else { %>
    <s:form action="Action">
        <h5>Логин или пароль неверный</h5>
        <s:textfield label="Введите логин" name="login" value=""></s:textfield>
        <s:textfield label="Введите пароль" name="password" value=""></s:textfield>
        <s:submit value="Войти"></s:submit>
    </s:form>
    <a href="#">Регистрация</a>
    <a href="#">Забыли пароль?</a>
    <% } %>
</div>


просто я не добавил в либы javax.servlet.session; и не получается через String строки сравнить :( что то с тайпкастом, ладно разберусь


--------------------
user posted image
PM MAIL ICQ   Вверх
MisterCleric
Дата 16.8.2010, 09:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1043
Регистрация: 16.2.2006
Где: Харьков, Украина

Репутация: 33
Всего: 38



Привет.
Вообще в struts есть возможность с помощью его тегов получать значение из сессии
Код

<s:property value="#session[admin']"/>

а если "if", то так:
Код

<s:if test="#session[admin'] == 'id1'">



--------------------
ПРИШЕЛ, УВИДЕЛ - ПЕРЕПИСАЛ...
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0450 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.