Да, когда пользователь нажимает кнопку, браузер выполняет новый запрос к серверу. Этот новый запрос не имеет? Id = asdasdasd как его часть. Самым простым решением, которое я могу придумать, является сохранение этого значения в скрытом текстовом поле на странице. Вы можете использовать некоторый JavaScript для заполнения значения.
Итак, если у вас есть в вашем JSP, возможно, какой-то javascript такой:
<script type='text/javascript'>
function gup( name )
{
name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
var regexS = "[\\?&]"+name+"=([^&#]*)";
var regex = new RegExp( regexS );
var results = regex.exec( window.location.href );
if( results == null )
return "";
else
return results[1];
}
if(gup('id') != "") {
document.forms[0].idHidden.value = gup('id');
}
</script>
Я не проверял этот код на наличие ошибок, но идея заключается в том, что при первой загрузке страницы значение id хранится в скрытом поле ввода. Это поле привязано к вашему управляемому компоненту, поэтому значение сохраняется при обновлении страницы. Просто укажите значение идентификатора, хранящееся в bean-компоненте (как idHidden в приведенном выше примере), вместо параметра запроса.
Кстати: я украл функцию GUP с http://www.netlobo.com/url_query_string_javascript.html
Ник