在Struts 2中转发到不同的路径

时间:2011-11-16 16:11:07

标签: jsp struts2

我正在为用户开发登录页面,具有admin priviledge的用户被转发到特定路径,具有用户privledge的用户被转发到另一个路径。我想在处理java类之后转发。我是Struts 2的新手。

最诚挚的问候,

2 个答案:

答案 0 :(得分:2)

最简单的解决方案是为每种用户类型声明不同的结果。

<action name="login">
    <result name="admin">/WEB-INF/admin_home.jsp</result>
    <result name="user">/WEB-INF/user_home.jsp</result>
    <result name="input">/WEB-INF/login.jsp</result>
</action>

可能更期望actionRedirect,实现重定向后获取模式。

还有一些其他选项,包括使用操作变量来决定要去哪个。例如,如果您公开了动作属性which

<action name="login">
    <result>/WEB-INF/${which}_home.jsp</result>
    <result name="input">/WEB-INF/login.jsp</result>
</action>

答案 1 :(得分:2)

如果你的意思是将用户重定向到不同的页面,请转发?如果是这种情况,则必须在行动中设置结果字符串,如

public class MyActionextends ActionSupport{
   String action="default"
   //getter and setter for action
    public String execute() throws Exception {
       String view;

        if admin
        view="admin_view"
        action="admin_view"
        if user
        view="user"
        action="user"
        return view;  


    }
]
struts.xml中的

执行类似

的操作
<action name="myaction">
    <result name="user">user.jsp</result>
    <result name="admin_view">admin.jsp</result>
</action>

What dave has suggested
<action name="myaction">
    <result>/WEB-INF/${action}_home.jsp</result>
    <result name="input">/WEB-INF/login.jsp</result>
</action>