JSP и JavaScript

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

СЕРВЕР:

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

@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 способ сделать вещи

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

1
задан BalusC 15 November 2011 в 00:37
поделиться

2 ответа

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

1
ответ дан 2 September 2019 в 23:51
поделиться

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

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

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

UPDATE

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

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

1
ответ дан 2 September 2019 в 23:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: