Как сделать так, чтобы ActionBean создавался немедленно, но не после того, как я вызову один из обработчиков? - PullRequest
3 голосов
/ 20 июня 2010

Я пытаюсь сделать что-то простое с Полосами. Я много читал и слышал о простоте использования этой структуры и о крутой кривой обучения (т.е. обучение довольно быстрое и продуктивное).

Но до сих пор я не могу даже создать самый простой HelloWorld с Stripes.

Все примеры, которые я нашел, демонстрируют такие функциональные возможности, как: «нажмите на ссылку -> увидеть результат». Когда мы нажимаем на ссылку, вызывается специальный обработчик (который возвращает Resolution), и после этого также работают геттеры (потому что создается экземпляр bean-компонента).

Но если мне не нужна ссылка, но мне нужна простая статическая информация (например, когда я открываю StackOverflow, мне не нужно нажимать ссылку, но я сразу вижу список вопросов), тогда это не как мне кажется, тривиально для Полос, потому что боб создается не сразу.

Как это исправить? Есть ли какая-то особая аннотация или другая техника?

Кто-нибудь здесь пробовал Stripes и встречал такую ​​же проблему? Я очень расстроен, может быть, я что-то пропустил ..

UPD: это, вероятно, не ясно, потому что я не добавил ни одного кода. Поэтому я опишу немного больше. Чтобы воспроизвести мою ситуацию, достаточно получить код из QuickStart и попытаться извлечь текст из получателей ActionBean (в настоящее время текст жестко запрограммирован в jsp). Текст появится только после нажатия кнопки (т.е. после того, как обработчик выполнит некоторую работу). Но после того, как вы откроете страницу в первый раз, вы не увидите текст.

1 Ответ

5 голосов
/ 20 июня 2010

Вы знакомы с шаблоном MVC (см. http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller)? Одна из ключевых частей MVC - вы никогда не вызываете JSP напрямую. Вы не заходите на www.myservername.com / myjsp.jsp . Вместо этого вы переходите на www.myservername.com / mything.action . Полосы сделают некоторую обработку, установят некоторые вещи, а затем отправят вас к определенной JSP.

Судя по вашему вопросу, это звучит так, будто вы пытаетесь перейти непосредственно к JSP. Прекратите это делать, и вы будете намного лучше ладить с полосами.

Что касается того, что происходит, когда вы просто заходите на www.myservername.com, вы переходите к файлу приветствия в вашем файле web.xml. Вы делаете что-то вроде этого

<welcome-file>index.jsp</welcome-file>

(да, вы нарушаете правило об отсутствии jsp напрямую)

Затем в index.jsp вы создаете файл в 1 строку, например:

<jsp:forward page="myaction.action"/>

И в первый раз, когда кто-то заходит на ваш сайт, он нажимает index.jsp, который отправляет его в действие, которое заполняет вещи и пересылает их. Ни в каком другом случае пользователь не получит прямой доступ к jsp, а индексный файл - не что иное, как пересылка к реальному действию.

...