JSP и Javascript - PullRequest
       4

JSP и Javascript

1 голос
/ 10 июня 2010

Может кто-нибудь psuedo решение моей проблемы, или просто провести обсуждение, чтобы помочь мне найти решение? Я всегда обнаруживал, что использование JSP для заполнения HTML - очень неловкое решение для создания страниц, и если вы хотите конвертировать в AJAX, почти всегда возникает необходимость переписать весь «компонент» или что-либо еще, что вы отображаете. Мне нужен просмотрщик историй, и я бы хотел, чтобы фактическая работа по заполнению просмотрщика историй была написана в javascript с одной точкой входа, чтобы я мог либо вводить информацию при загрузке страницы, либо обновлять ее, используя ajax или используйте автономный компонент на другой странице, если хотите.

SERVER:

Сервер может настраивать виды новых историй, доступных на странице, и контроллер отправляет обратно модель, заполненную историями, для отображения:

@RequestMapping(value="/news/{category}")
public String news(@PathVariable("category") String category, Model m) {

    m.addAttribute("featuredStory", newsService.getFeaturedStoryForCategory(category));
    m.addAttribute("otherRelatedStories", newsService.getStoriesByCategory(category, 3/*num of stories*/));
    return newsService.getViewNameForCategory(category);
}

ВИД:

<div>
<h1>Story Title Would Go Here</h1>
<div>maybe some text description here</div>
<img src="my image source would go here"/>
</div>

так что это моя основная настройка, но теперь мне нужно собрать информацию из модели моих серверов в компоненты, которые выглядят примерно так, у меня было несколько разных мыслей, но я не могу придать им импульс, Одним из примеров является то, что я думаю о странице в, я мог бы иметь что-то вроде этого:

<javascript>
var populateFeaturedStoryWithJson( json ) {
   ...
   $(#featuredStoryId).insert(json.getStoryTitle);
   ...
}
</javascript>

но кто будет отвечать за этот звонок? Как я могу получить JSON из модели сервера? Я не хочу связываться с использованием ajax-запросов, я просто хотел бы иметь возможность получать контент из разных источников, так что единственный код, который изменяется, это код выборки контента истории, а не отображения контента в моем компоненте

Я знаю, что этот вопрос немного широк, но я думаю, что он действительно окупится, если я смогу избежать общего решения чего-то вроде:

<h1>${featureStory.title}</h1>

Поскольку я всегда считал, что это самая неловкая и не объектно-ориентированная часть способа работы Spring-MVC

edit: я открыт для других идей, кроме простого javascript, но я действительно хочу компонент представления, который может получать данные из разных мест, где буквально единственное, что меняется, - это код, который берет данные из этого источника и преобразует его в модель данных представлений

Ответы [ 2 ]

1 голос
/ 30 июня 2010

Использование JSP здесь является стандартным, вы можете использовать JSP для инициализации переменных Javascript при загрузке страницы, если это то, что вы ищете

1 голос
/ 10 июня 2010

Я бы предположил, что сама страница будет отвечать за заполнение данных.Я не знаю, почему вам не нравится использовать EL;это очень хорошо вписывается в модель MVC.Чтобы свести к минимуму количество запросов, которые вы делаете, вы можете использовать EL для начального заполнения страницы.После этого, если вы хотите изменить содержимое динамически, вы можете использовать JSON.

Вам нужно представление, которое специально выделяет JSON, чтобы вы могли получить к нему доступ как /something.json.

Это сообщение на форуме здесь говорит о реализации того, о чем я говорил.Также это сообщение в блоге , похоже, содержит хорошую информацию (относится к Spring 3).

ОБНОВЛЕНИЕ

Ну, в какой-то момент вы собираетесьчтобы получить данные с сервера в ваш слой представления.EL в основном используется для создания пользовательских тегов и введения значений из модели в ваше представление.Таким образом, рендеринг все еще зависит от вас.Если вы действительно хотите сделать Javascript «компонентами», вы можете создать пользовательские теги, содержащие EL и Javascript, необходимые для их отображения.Таким образом, ваши страницы не будут содержать EL.

Кроме того, если вы ищете компонентный подход, вы смотрели на JSF ?Конечно, он также использует некоторые EL, но обеспечивает прямую связь между компонентом и компонентом. На этой странице есть несколько хороших учебных пособий (для 1.x и 2.x).

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