【发布时间】:2015-02-16 18:29:03
【问题描述】:
我一定遗漏了一些东西,希望有人能纠正我。我继承的 webapp 使用 struts2 和 JSP 页面,我想使用这个布局管理器 (http://igniteui.com/layout-manager/border-layout-markup) 来组织它。左侧将有一个菜单,其中包含将内容加载到中心的链接,而“主”页面(页眉、页脚、左侧菜单)保持不变,我认为这符合 SPA 原则。中间的“内容”是 JSP 页面,其中包含在用户操作后提交的带有输入字段的表单。
我不明白的是 struts 动作如何适应这一点。该应用程序具有在 struts.xml 中定义的操作,并且在提交该页面/表单时可以正常工作。但是当新的 JSP 被加载到主页的内容部分时呢?与该加载相关的操作或操作是什么?
当前主页使用 iframe 来显示内容:
<div class="center">
<iframe id="ifrmContent" name="iframe" src="jspDefaultContent.jsp" </iframe>
</div>
当点击左侧菜单中的链接时,这就是我切换内容的方式:
$("#ifrmContent").attr('src','jspNewContent.jsp');
首先我应该问一下这是否是正确/最好的方法,因为我已经看到/听说使用 iframe 并不理想。
其次,具体问题是没有与这个新的 JSP 内容页面加载相关的“动作”。因此,用于使用数据库中的数据填充某些 s:select 元素列表的 OGNL 不起作用。具体来说,这将起作用:“%{@com.my.class@countryList}”,因为它在该 Java 服务器类中调用静态变量,但这不会:“%{getCities()}”,因为它正在寻找调用动作类的方法..没有。它不调用主页面动作,也不调用内容页面动作类。
如何获取与从菜单链接加载的内容页面相关联的操作类?或者,鉴于我只想刷新/提交内容而不是整个 MAIN 页面,如何/应该如何组织这些问题?
感谢您的建议。
【问题讨论】:
标签: jsp struts2 single-page-application ognl