Параметр ссылки JSF становится нулевым - PullRequest
0 голосов
/ 15 июля 2009

У меня есть страница со ссылкой http://localhost:8080/Test/Page.faces?id=asdasdasd На странице появилось 2 текстовых поля и одна кнопка, после того, как пользователь введет детали и нажмет кнопку «Отправить», он будет работать хорошо, когда вы впервые нажмете кнопку «Отправить», идентификатор вернет мне точное значение, но если пользователь никогда не введет значение и нажмите кнопку Отправить, будет запущена проверка, а затем снова нажмите кнопку. Идентификатор возвращает ноль? Как решить эту проблему кто-нибудь может помочь?

1 Ответ

0 голосов
/ 21 июля 2009

Да, когда пользователь нажимает кнопку, браузер выполняет новый запрос к серверу. Этот новый запрос не имеет? 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

Ник

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...