struts2动态action的实现(转)

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。 http://kin111.blog.51cto.com/738881/165753
<!--正文 begin-->
当我们进行一个应用的时候,根据从页面提交过来的应用的类型不同的时候,需要进行不同的action转发处理的时候,如何做呢,可以在struts中通过result标签的设置来进行。

举例如:是管理者的用户登录的时候,执行完了认证需要的loginaction后,想进行admin权限action的处理,并跳转到管理者的首页面。

而如果是普通用户登录后,执行完了认证需要的loginaction后,想进行普通用户的权限action的处理,并跳转到普通用户的首页面。

以下是一个实现示例:

首先是一个login.jsp文件,
在这个jsp文件中,我们提交admin或者user来设定权限。
文件内容:
<%@ page contentType="text/html; charset=gb2312" %>
<%@ taglib uri="/struts-tags" prefix="s"%>
<html>
<form action="login.action" method="post">
输入admin,或者user<br>
role: <input type="input" name="role"><br>
<input type="submit" value="login">
</form>
</html>

然后是LoginAction.java文件
在这个文件中取得页面传过来的权限(role)
文件内容;
package struts2.login;

import com.opensymphony.xwork2.ActionSupport;

public class LoginAction  extends ActionSupport{
     private String role = "";
    public String getRole() {
        return role;
    }
    public void setRole(String role) {
        this.role = role;
    }
   
    @Override
    public String execute() throws Exception {
        // TODO Auto-generated method stub
        return SUCCESS;
    }
}

然后是struts.xml文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>

    <package name="default" extends="struts-default">
        <action name="login" class="struts2.login.LoginAction">
            <result name="success" type="chain">${role}</result>
        </action>
       
        <action name="admin">
            <result>admin.jsp</result>
        </action>
       
        <action name="user">
            <result>user.jsp</result>
        </action>
    </package>
   
</struts>

在这个文件中,在login的action配置的地方,result的设定使用了type="chain"的设定方式,将结果进行其它action的转发,而转发的action名字则为action中的变量值role。

然后在下面配置了两个forward的action,根据role分别转到不同的页面。
这里没有指定action的class,可以根据实际的应用进行添加。

结果页面;
文件名:admin.jsp
文件内容:
<%@ page contentType="text/html; charset=gb2312" %>
<%@ taglib uri="/struts-tags" prefix="s"%>

<html>
admin管理action成功。
</html>

文件名:user.jsp
文件内容:
<%@ page contentType="text/html; charset=gb2312" %>
<%@ taglib uri="/struts-tags" prefix="s"%>

<html>
user的action成功。
</html>

好我们,执行以下,看到输入admin的时候,会跳转到admin.jsp页面

而输入user的时候,会跳转到user.jsp页面。
如图:

本文出自 “点点滴滴” 博客,请务必保留此出处http://kin111.blog.51cto.com/738881/165753

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值