Как сделать так, чтобы экземпляр ActionBean создавался немедленно, но не после того, как я вызову один из обработчиков?

StackOverflow https://stackoverflow.com/questions/3080442

  •  28-09-2019
  •  | 
  •  

Вопрос

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

Но до этого момента я не могу создать даже самый простой HelloWorld с Полосками.

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

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

Как это исправить?Существуют ли какие-то специальные аннотации или другая техника?

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

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

Это было полезно?

Решение

Знакомы ли вы с шаблоном 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.Stripes выполнит некоторую обработку, установит некоторые параметры, а затем отправит вас на конкретный JSP.

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

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

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

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

Затем в index.jsp вы создаете файл в 1 строку следующим образом:

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top