`

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

分享到:
评论

相关推荐

    struts 2 action 动态调用

    本文档将详细介绍如何在Struts 2中实现Action动态方法调用,并通过实例演示其具体应用。 #### 二、基础知识回顾 在开始深入探讨动态方法调用之前,让我们先回顾一下Struts 2框架的基本概念。 1. **Action**: 在...

    Struts2 动态方法调用(十三)

    在Struts2中,动态方法调用(Dynamic Method Invocation,DMI)是一种特性,允许我们通过URL直接调用Action类的方法,而无需在配置文件中显式指定。这在某些情况下提供了更大的灵活性。 在Struts2的动态方法调用中...

    Struts2 in action(struts2实战)

    - **Interceptor**(拦截器):拦截器是Struts2的核心组件,它们按照预定义的顺序对Action的调用进行拦截,实现如日志记录、权限验证、事务管理等功能。 2. **配置方式**: - **XML配置**:传统的Struts2配置通常...

    Struts2实战(Struts2 In Action中文版)

    **Struts2实战——《Struts2 In Action中文版》** 《Struts2 In Action》是一本专为Java开发者设计的实战指南,旨在深入解析Struts2框架的使用与实践。Struts2作为一款强大的MVC(Model-View-Controller)框架,极...

    Struts 2实战 Struts 2 in action 的中文版

    根据提供的信息,我们可以推断出这是一本关于Struts 2框架的书籍——《Struts 2实战 Struts 2 in action 的中文版》。本书主要介绍了Struts 2框架的相关概念、工作原理以及实际应用案例等内容。接下来,我们将根据...

    Struts2 in action中文版+配套源代码

    5. **OGNL(Object-Graph Navigation Language)**:Struts2使用OGNL作为默认的表达式语言,用于在Action与视图之间传递数据,支持动态属性访问和方法调用。 6. **插件系统**:Struts2拥有丰富的插件库,如Tiles、...

    Struts实现动态树

    综上所述,"Struts2实现动态树结合Hibernate"涉及到的主要知识点有:Struts2 MVC框架的工作原理、Hibernate的实体映射和CRUD操作、前端动态加载的实现、Ajax技术以及Struts2的配置和Action设计。通过整合这些技术,...

    struts2的Ajax实现注册验证

    1. **Struts2配置**:首先,需要在`struts.xml`配置文件中定义一个Action,这个Action将处理Ajax请求。你需要设置一个特定的结果类型,比如`json`,这将使Struts2以JSON格式返回数据,非常适合Ajax调用。 2. **Ajax...

    struts2 动态结果集

    总之,Struts2动态结果集是一个强大的功能,能够帮助开发者更灵活地处理Action的返回结果,提高代码的可维护性和可扩展性。通过深入研究和实践,你可以更好地掌握这一特性,提升你的Struts2开发技能。

    struts2 action跳转action传参数

    在Struts2框架中,经常需要实现Action之间的跳转,并在跳转过程中传递必要的参数。这种需求在实际开发中非常常见,尤其是在需要根据用户的不同操作来调用不同的业务逻辑时。下面将详细介绍如何在Struts2中实现Action...

    Struts2 in action 中文版

    Struts2框架是基于MVC设计模式构建的,它通过Action组件实现了控制器的功能,通过配置文件(通常是XML格式)定义了模型和视图之间的映射关系。Struts2的灵活性在于,它可以轻松地与其他技术(如Spring和Hibernate)...

    Struts2 in action 中文版.pdf

    书中详细阐述了Struts2的配置机制,包括XML配置和注解配置,以及如何通过配置文件实现动态方法调用和结果映射。此外,Struts2的拦截器机制也是其一大特色,它允许开发者定义自定义的拦截逻辑,如日志、权限验证等,...

    Struts2实例 国际化 类型转换 struts标签

    在Action或者JSP页面中,可以通过`&lt;s:text&gt;`标签来引用这些资源,实现动态显示不同语言的文本。 类型转换(Type Conversion)是Struts2的一项重要特性,它能自动将请求参数转换为Action属性的预期类型。例如,用户...

    struts2实现文件下载功能

    在这个“Struts2实现文件下载功能”的示例中,我们将深入探讨如何利用Struts2框架来实现在web应用中让用户下载文件的功能。 首先,我们需要理解文件下载的基本原理。在Web应用中,当用户点击一个链接或提交一个表单...

    struts2登录注册简单实现

    总的来说,这个“struts2登录注册简单实现”项目涵盖了Struts2框架的基础应用,包括Action的创建、配置文件的编写、视图设计、数据处理以及安全性考虑等多个方面。通过实践,开发者能更深入地理解Struts2的架构和...

    struts2 in action 中文版 英文版 源代码 合集

    英文版的《Manning - Struts 2 in Action (May 2008)》则是原汁原味的原著,对于那些寻求深入学习或者希望了解最新技术动态的开发者来说,是非常有价值的资源。此版本通常会包含最新的框架更新和技术改进,让读者...

    Struts2技术内幕 深入解析Struts架构设计与实现原理

    2. **动态代理**:Struts2使用动态代理技术实现了AOP(面向切面编程),使得开发者可以通过配置而非编码的方式实现拦截器的调用。 3. **类型转换**:Struts2内置了一套类型转换机制,能够自动将请求参数转换为Action类...

    Struts2中Action接收参数的方法

    Struts2 中 Action 接收参数的方法 Struts2 框架中,Action 组件可以通过多种方式接收参数,这些方式包括使用 Action 的属性、使用 DomainModel 和使用 ModelDriven。下面将详细介绍这些方法: 使用 Action 的属性...

    struts2实现用户登录注册

    这可以通过在Action类中实现这些验证逻辑来完成,或者使用Struts2提供的验证框架,通过XML或者注解定义验证规则。 登录功能相对简单,主要是比较用户输入的用户名和密码与数据库中的记录是否匹配。这里,Action类...

Global site tag (gtag.js) - Google Analytics