当我们进行一个应用的时候,根据从页面提交过来的应用的类型不同的时候,需要进行不同的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框架的基本概念。 1. **Action**: 在...
在Struts2中,动态方法调用(Dynamic Method Invocation,DMI)是一种特性,允许我们通过URL直接调用Action类的方法,而无需在配置文件中显式指定。这在某些情况下提供了更大的灵活性。 在Struts2的动态方法调用中...
- **Interceptor**(拦截器):拦截器是Struts2的核心组件,它们按照预定义的顺序对Action的调用进行拦截,实现如日志记录、权限验证、事务管理等功能。 2. **配置方式**: - **XML配置**:传统的Struts2配置通常...
**Struts2实战——《Struts2 In Action中文版》** 《Struts2 In Action》是一本专为Java开发者设计的实战指南,旨在深入解析Struts2框架的使用与实践。Struts2作为一款强大的MVC(Model-View-Controller)框架,极...
根据提供的信息,我们可以推断出这是一本关于Struts 2框架的书籍——《Struts 2实战 Struts 2 in action 的中文版》。本书主要介绍了Struts 2框架的相关概念、工作原理以及实际应用案例等内容。接下来,我们将根据...
5. **OGNL(Object-Graph Navigation Language)**:Struts2使用OGNL作为默认的表达式语言,用于在Action与视图之间传递数据,支持动态属性访问和方法调用。 6. **插件系统**:Struts2拥有丰富的插件库,如Tiles、...
综上所述,"Struts2实现动态树结合Hibernate"涉及到的主要知识点有:Struts2 MVC框架的工作原理、Hibernate的实体映射和CRUD操作、前端动态加载的实现、Ajax技术以及Struts2的配置和Action设计。通过整合这些技术,...
1. **Struts2配置**:首先,需要在`struts.xml`配置文件中定义一个Action,这个Action将处理Ajax请求。你需要设置一个特定的结果类型,比如`json`,这将使Struts2以JSON格式返回数据,非常适合Ajax调用。 2. **Ajax...
总之,Struts2动态结果集是一个强大的功能,能够帮助开发者更灵活地处理Action的返回结果,提高代码的可维护性和可扩展性。通过深入研究和实践,你可以更好地掌握这一特性,提升你的Struts2开发技能。
在Struts2框架中,经常需要实现Action之间的跳转,并在跳转过程中传递必要的参数。这种需求在实际开发中非常常见,尤其是在需要根据用户的不同操作来调用不同的业务逻辑时。下面将详细介绍如何在Struts2中实现Action...
Struts2框架是基于MVC设计模式构建的,它通过Action组件实现了控制器的功能,通过配置文件(通常是XML格式)定义了模型和视图之间的映射关系。Struts2的灵活性在于,它可以轻松地与其他技术(如Spring和Hibernate)...
书中详细阐述了Struts2的配置机制,包括XML配置和注解配置,以及如何通过配置文件实现动态方法调用和结果映射。此外,Struts2的拦截器机制也是其一大特色,它允许开发者定义自定义的拦截逻辑,如日志、权限验证等,...
在Action或者JSP页面中,可以通过`<s:text>`标签来引用这些资源,实现动态显示不同语言的文本。 类型转换(Type Conversion)是Struts2的一项重要特性,它能自动将请求参数转换为Action属性的预期类型。例如,用户...
在这个“Struts2实现文件下载功能”的示例中,我们将深入探讨如何利用Struts2框架来实现在web应用中让用户下载文件的功能。 首先,我们需要理解文件下载的基本原理。在Web应用中,当用户点击一个链接或提交一个表单...
总的来说,这个“struts2登录注册简单实现”项目涵盖了Struts2框架的基础应用,包括Action的创建、配置文件的编写、视图设计、数据处理以及安全性考虑等多个方面。通过实践,开发者能更深入地理解Struts2的架构和...
英文版的《Manning - Struts 2 in Action (May 2008)》则是原汁原味的原著,对于那些寻求深入学习或者希望了解最新技术动态的开发者来说,是非常有价值的资源。此版本通常会包含最新的框架更新和技术改进,让读者...
2. **动态代理**:Struts2使用动态代理技术实现了AOP(面向切面编程),使得开发者可以通过配置而非编码的方式实现拦截器的调用。 3. **类型转换**:Struts2内置了一套类型转换机制,能够自动将请求参数转换为Action类...
Struts2 中 Action 接收参数的方法 Struts2 框架中,Action 组件可以通过多种方式接收参数,这些方式包括使用 Action 的属性、使用 DomainModel 和使用 ModelDriven。下面将详细介绍这些方法: 使用 Action 的属性...
这可以通过在Action类中实现这些验证逻辑来完成,或者使用Struts2提供的验证框架,通过XML或者注解定义验证规则。 登录功能相对简单,主要是比较用户输入的用户名和密码与数据库中的记录是否匹配。这里,Action类...