Как отобразить 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.