使用Struts2进行默认重定向

时间:2009-12-10 19:37:51

标签: struts2

目前当你点击我的应用程序的根上下文时,Struts2会抛出一个错误:

离。 http://localhost:8080/

返回

  

HTTP错误404

     

访问/的问题。原因是:

There is no Action mapped for namespace / and action name .

有没有办法在Struts2中进行默认重定向?

4 个答案:

答案 0 :(得分:3)

在我的应用中,我只需执行以下操作即可重定向到所选操作:

<action name="*">
    <result type="redirectAction">
        <param name="actionName">portal</param>
    </result>
</action>

只需确保将其作为struts.xml配置文件中的最后一个操作,然后它将捕获之前无法匹配的所有内容。

这样重定向就发生在struts2中,这对用户来说是不可见的。

答案 1 :(得分:2)

您可以在web.xml中指定welcome-file-list并指定index.jsp,例如:

<welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
</welcome-file-list>

然后在index.jsp中,你可以将它放在顶部:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<META HTTP-EQUIV="Refresh" CONTENT="0;URL=initLogin.action">

假设你在struts.xml中有这样的东西:

<action name="*Login" method="{1}" class="com.abc.LoginAction">
    <result name="login">/login.jsp</result>
    <result name="register">/register.jsp</result>
    <result name="success">/success.jsp</result>
</action>

这将通过init操作重定向到您的LoginAction类。

那么,如果我去了http://localhost:8080/MyApp,这是它将采取的默认操作。

答案 2 :(得分:0)

没有比元刷新更好的东西吗?比如在struts中有一个jsp:forward ......这似乎在struts2中不起作用。我不知道我对元刷新感到满意。并且不知道它与使用任何java提供的重定向不同,猜测我可以使用可能在jsp中的调度程序类,但不确定。

答案 3 :(得分:0)

通过以下链接中的示例,在那里给出了很多教程,使用它们可以识别您的错误..

linklink2