Как отобразить HTML-контент в форме действия

Я пишу класс действий Struts, из которого я генерирую некоторый HTML-контент и добавляю его в поле в ActionForm. Как я могу отобразить его в файле JSP.

2 ответа

Решение

Я хотел бы рассмотреть возможность использования объекта запроса вместо изменения ActionForm. Вы можете использовать логику и теги bean-компонентов в JSP и попытаться отделить содержимое HTML и поместить все это в JSP.

Например, вы можете использовать в своих действиях:

request.setAttribute("message", "<STRONG>html message</STRONG>");

И в вашем JSP что-то вроде этого:

<logic:present name="message">
  <bean:write name="message" filter="false" />
</logic:present>

Но я думаю, что лучше было бы оставить HTML-код JSP, который несет за это ответственность. Действие должно делать другие вещи и является хорошим дизайном для разделения этих задач.

Рассмотрим это для ваших действий:

request.setAttribute("message", "html message");

И это для вашего JSP:

<logic:present name="message">
  <STRONG><bean:write name="message" /></STRONG>
</logic:present>

Таким образом, вы централизуете генерацию HTML-кода в своих JSP-файлах и освобождаете от действия этого бремени.

Использование JSP EL.

В действии:

actionForm.setMyHtmlString(someHtml);

В JSP:

Here is the HTML : ${fooBarActionForm.myHtmlString}

Форма действия сохраняется в качестве атрибута запроса или сеанса в Struts. Имя этого атрибута - это имя, данное форме действия в файле struts-config.xml.

Другие вопросы по тегам