Как заставить jQuery Mobile загружать страницы в DOM при прохождении через сервлет JSP? - PullRequest
0 голосов
/ 22 сентября 2011

jQuery Mobile загрузит дополнительные фоновые страницы в DOM, а затем перейдет к ним. Иногда это работает хорошо, но в примере, где используется сервлет JSP, похоже, что он ломается. Я задавался вопросом, каков наилучший способ сделать это.

Например, скажем, у нас на первой странице это:

<div data-role="page" id="home">
  <div data-role="content">
    <a href="jqmServlet?value=1.1">1.1</a>
  </div>
</div>

Где 1.1 - это что-то, что может отличаться, и поэтому сервлет должен делать что-то другое.

Теперь сервлет возвращает страницу, содержащую это:

<div data-role="page" id=${pageThing}>
  <div data-role="content">
   <a href="#OTHER_1">other 1</a></li>
  </div>
</div>

<div data-role="page" id="OTHER_1">
  <div data-role="content">
<p>Other 1 Content</p>
  </div>
</div>

Начиная первую страницу, я нажимаю «1.1», она переходит к сервлету, и я вижу ссылку «другой 1». Так что все это ожидается. Но когда я нажимаю «прочее 1», происходит сбой, потому что основная ссылка выглядит как jqmServlet?value=1.1#OTHER_1, что явно не то, что я намеревался. То, что я намеревался, было «другим 1 контентом», отображаемым только с использованием контента, уже имеющегося в DOM.

Я начал играть с параметром «data-url», но пока не понял секретного рукопожатия.

Какой правильный способ сделать это?

РЕДАКТИРОВАТЬ: Мне кажется, это будет стандартная вещь, которая должна быть выполнена. Я перепробовал десятки вариаций URL-адреса данных, но не смог заставить его работать должным образом; всегда была какая-то проблема с URL-адресом, или если я получал URL-адрес, выглядящий довольно хорошо, он все равно не отображал страницу «OTHER_1» (он просто действовал так, как если бы эта страница в DOM не существовала). Я собирался заменить ссылку вызовом JavaScript, но это отрицает ценность этого инструмента. У кого-нибудь есть идеи?

...