在Struts2中包含动态jsp的最佳方法

时间:2011-12-13 15:01:09

标签: struts2

在我基于struts2的应用程序中,我需要包含工作模板(一个jsp文件)。我已经设计了布局并且已经完成了所有工作。应用程序的一部分将在整个应用程序中发生变化,即工作区域。 / p>

在我的index.jsp文件中,我需要包含数据库驱动的菜单,我需要点击action我认为的一种方式就像使用

<META HTTP-EQUIV="Refresh" CONTENT="0;URL=welcome.action">

在我的index.jsp的主管部分,但我不想在我的应用程序的第一个位置重定向。

还有其他方法可以达到这个目的吗?

2 个答案:

答案 0 :(得分:1)

这是一种正常的做法;没错。

另一种方法是将操作定义为欢迎页面,但您需要根据this SO answer在过滤器上定义调度程序元素。

答案 1 :(得分:0)

在您的web-content文件夹中创建一个空文件名welcome。将follwinf条目添加到您的web.xml

 <filter>
        <filter-name>action2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
    </filter>
 <filter-mapping>
        <filter-name>action2</filter-name>
         <url-pattern>/*</url-pattern>
         <dispatcher>REQUEST</dispatcher>    
         <dispatcher>FORWARD</dispatcher>
         <dispatcher>INCLUDE</dispatcher>
         <dispatcher>ERROR</dispatcher>
    </filter-mapping>

将web.xml中的欢迎列表文件替换为

<welcome-file-list>
        <welcome-file>welcome</welcome-file>
</welcome-file-list>

最后在strus.xml中执行类似

的操作
<action name="welcome" class="welcome.action">
        <result>/index.jsp</result>
    </action>

我们要做的是当我们点击example.com而不是显示欢迎jsp文件时,我们正在执行操作并使用其结果。在这种情况下,您的网址将保持相同,如www.mysite.com