Я должен упустить что-то, что, я надеюсь, кто-то может исправить меня. Веб-приложение, которое я унаследовал, использует страницы struts2 и JSP, и я хочу организовать его с помощью этого менеджера компоновки ( http://igniteui.com/layout-manager/border-layout-markup). Слева будет меню со ссылками, которые будут загружать контент в центр, в то время как «главная» страница (верхний и нижний колонтитулы, левое меню) останется на месте, что, как я считаю, соответствует принципам SPA. «Контент» посередине будет страницами JSP с формами с полями ввода, которые отправляются после действий пользователя.
Чего я не понимаю, так это того, как действия распорки вписываются в это. В приложении есть действия, определенные в struts.xml, и они отлично работают при отправке этой страницы/формы. Но что делать, когда новый JSP загружается в раздел содержимого главной страницы? Как или какое действие связано с этой загрузкой?
В настоящее время главная страница использует iframe для содержимого:
<div class="center">
<iframe id="ifrmContent" name="iframe" src="jspDefaultContent.jsp" </iframe>
</div>
и когда нажимается ссылка в левом меню, я переключаю контент следующим образом:
$("#ifrmContent").attr('src','jspNewContent.jsp');
Сначала я должен спросить, является ли это правильным/лучшим способом сделать это, поскольку я видел/слышал, что использование фреймов не идеально.
Во-вторых, конкретная проблема заключается в том, что нет никакого «действия», связанного с загрузкой этой новой страницы содержимого JSP. Таким образом, OGNL, который использовался для заполнения некоторых списков элементов s:select данными из базы данных, не работает. В частности, это БУДЕТ работать: «%{@com.my.class@countryList}», потому что он вызывает статическую переменную в этом классе сервера Java, но это НЕ работает: «%{getCities()}», поскольку он пытается вызвать метод класса действия.. и его нет. Он не вызывает действие страницы MAIN и не вызывает класс действий страницы содержимого.
Как я могу получить класс действия, связанный со страницей контента, которую я загружаю из ссылки меню? Или как это можно/должно организовать, чтобы у меня не было этих проблем, учитывая, что я хочу только обновить/отправить контент, а не всю ГЛАВНУЮ страницу?
Спасибо за любой совет.