Где я могу разместить код, который мне нужен для запуска на всех веб-страницах в Play Framework? - PullRequest
0 голосов
/ 15 ноября 2011

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

Я - парень из ASP.NET, который недавно переключился на Play в соответствии с мандатом компании. Я немного растерялся. MVC для меня новичок, и ORM пугает меня полностью.

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

Теперь мне нужно написать PLAY-версию веб-сайта .NET. Итак, на мой вопрос.

На каждой веб-странице в моем игровом приложении мне нужно запустить какой-нибудь код Java, который генерирует огромную строку HTML, а затем выплевывать эту строку html на метку где-нибудь в представлении. Это похоже на функцию из 100 строк, и она просто возвращает строку, которую я передаю клиенту. На моих сайтах .NET я просто помещаю это в «код позади» моей главной страницы.

Проблема в том, что у моей главной страницы в Play нет кода позади. Так, где я помещаю весь этот код Java, который должен выполнить на каждой странице? Я начал смотреть на контроллеры, но это не объект, который я бы перенаправил в функцию рендеринга, это функция из 100 строк, которая выполняет кучу логики и возвращает огромную строку. Мне нужен этот код на каждом экране, поэтому не имеет смысла помещать его на уровне контроллера, потому что тогда мне придется каждый раз передавать его для «рендеринга», и у меня около 100 действий.

Что действительно вызывает большой вопрос, если ваш код не является моделью и не имеет смысла в контроллере, куда вы его вставляете в Play? В любом случае, спасибо заранее.

Приветствие Josh

Ответы [ 2 ]

0 голосов
/ 15 ноября 2011

Я думаю, что у Мариуса есть ответ, который вы ищете в краткосрочной перспективе. Но ИМХО, вы бы преуспели у своего преемника (или у вас через год), если бы вы потратили время, чтобы внедрить функцию и правильно внедрить ее в компоненты MVC. То есть поместите данные представления и манипуляции в модель, а элементы генерации HTML в тег представления или шаблон main.html.

0 голосов
/ 15 ноября 2011

Мне нужен этот код на каждом экране, поэтому не имеет смысла помещать его на уровне контроллера, потому что тогда мне придется каждый раз передавать его для «рендеринга», а у меня как 100actions.

Для этих случаев вы можете использовать аннотацию @Before.В вашем контроллере:

@Before
public static void bigFunction() {
   String result;
   // Do a lot of stuff...
   renderArgs.put("yourLabel", result);
}

В вашем шаблоне вы можете получить к нему доступ через:

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