2009-08-04 2 views
1

Я использую для передачи данных между *.java и *.jsp, так как это структура MVC, она будет передаваться сначала *.java. поэтому я использовал request.getSession().setAttribute("test", "01010101010"), чтобы сохранить значение, а затем в *.jsp, используйте request.getSession().getAttribute("test"), чтобы получить значение. Но он возвращает странную строку "682342348" все время.Что не так в request.getSession(). SetAttribute()

+1

На первый взгляд, я не понимаю, почему это не сработает. Не могли бы вы показать нам фрагмент JSP, в котором вы используете значение? – djna

+0

прямо сейчас, я нашел, если я использую его в <% = request.getAttribute ("test")%>, все в порядке. Но когда я использовал его в будет выводить странную строку .... – MemoryLeak

+0

Может быть проблемой javascript - см. Мой другой ответ ниже. – ironsam

ответ

2

Это может быть Javascript вопрос сейчас, попробуйте добавить кавычки вокруг значения параметра alert.

Изменить это:

<script>alert(<%=request.getAttribute("test")%>);</script> 

Для этого:

<script>alert('<%=request.getAttribute("test")%>');</script> 
1

Попробуйте заливку значения в строку, когда вы получите его из сессии:

String.valueOf(request.getSession().getAttribute("test")); 
0

Вполне возможно, что ваш класс Java и ваш JSP становятся различными объектами сеанса каким-то образом. Вы можете попробовать сравнить значение, которое вы возвращаете с session.getId(), чтобы убедиться, что они одинаковы.

Однако, если все, что вы пытаетесь сделать, это передать объекты из класса java в JSP, вам может вообще не понадобиться использовать сеанс. Вместо этого, хранить данные в качестве атрибута запроса:

request.setAttribute("test", "01010101010") 
+0

Да, я использовал это раньше, но он также возвращает данные об ошибках. и когда я пытаюсь использовать request.getAttribute («test»). toString(), он выкидывает исключение – MemoryLeak

0

request.getSession() - это создаст новую сессию, если она не существует. Вам нужно использовать request.getSession(false), если вы хотите убедиться, что если сеанса там нет, он не будет создан.

Смежные вопросы