Использование JSP-компонента в сеансе - PullRequest
1 голос
/ 18 ноября 2008

Я использую bean-компонент JSP, и когда я делаю присваивание новому объекту, он перезаписывается при отправке на предыдущий объект.

<jsp:useBean id="base" class="com.example.StandardBase" scope="session" />
...
//base object id  = 396
base = new Base()
//base object id = 1000

и при повторной отправке страницы я получаю

<jsp:useBean id="base" class="com.example.StandardBase" scope="session" />
//base object id = 396

Есть ли способ сообщить JSP о новом назначении?

Ответы [ 3 ]

3 голосов
/ 18 ноября 2008

Я не совсем уверен, но я думаю, base = new Base() не обновляет ссылку, хранящуюся в области сеанса. Следовательно, компонент, созданный вами с начальным значением <jsp:useBean/>, все еще присутствует, а компонент, созданный вручную, а затем обновленный, - нет.

Избавься от base = new Base() и у тебя все будет хорошо.

Если вы настаиваете на его обновлении, вы используете HttpSession.setAttribute(). Вот так:

session.setAttribute("bean", bean);

Я считаю, что переменная session автоматически создается и инициализируется для вас механизмом JSP.

1 голос
/ 18 ноября 2008

Ты не должен новый боб самостоятельно. Пусть JSP сделает это за вас

0 голосов
/ 18 ноября 2008

будет ли изменение области действия от сеанса к запросу исправить это для вас?

...