如何将struts.xml中的<action>指向另一个<action>?</action> </action>

时间:2011-12-13 16:58:32

标签: struts2 struts action redirecttoaction

基本上,当用户转到example.com时,如果它转到example.com/news,我希望为其提供相同的内容。以下是代码段。

当前的COnfig

  <action name="" class="action.public.news">
        <result>/jsp/labs/listLabs.jsp</result>
    </action>
<action name="news" class="action.public.news">
        <result>/jsp/labs/listLabs.jsp</result>
    </action>

Desried COnfig

<action name="" class="action.public.news">
        Use Action Named "news" instead
    </action>

    <action name="news" class="action.public.news">
        <result>/jsp/labs/listLabs.jsp</result>
    </action>

2 个答案:

答案 0 :(得分:1)

如果我理解正确,您希望当用户点击基础域example.com时,它应该获取动作news的内容,其中一种方法就是这样做。

在您的web-content文件夹中创建一个空文件名welcome。添加以下条目到您的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="action.public.news">
        <result>/jsp/labs/listLabs.jsp</result>
    </action>

我们要做的是当我们点击example.com而不是显示欢迎jsp文件时,我们正在执行操作并使用其结果

答案 1 :(得分:0)

大多数人在webapp文件夹中创建一个index.jsp页面,其中包含:

<% response.sendRedirect("index.action"); %>

这会在访问者到达您的域时将访问者重定向到index.action。然后,在struts.xml中:

<action name="index" class="action.public.news">
   <result>/jsp/labs/listLabs.jsp</result>
</action>

干杯, 基督教