redirect-action

功能:

点击login , redirect 到hello.jsp 显示 "hello"

点击redirect, redirect 到 error.jsp 显示 "error"

1.创建Struts2 工程

2.web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <filter>
    <filter-name>struts2</filter-name>
    <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>

3.index.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
    <s:a action="login">login</s:a><br/>
    <s:a action="login!redirect.action">redirect</s:a> <!--此处有bug-->
</body>
</html>

4.LoginAction.java

package com.action;
import com.opensymphony.xwork2.ActionSupport;

public class LoginAction extends ActionSupport {
    private static final long serialVersionUID=1L;
    public String execute() throws Exception{
        return SUCCESS;
    }
    public String redirect() throws Exception{
        return ERROR;
    }
}

5.UserAction.java

package com.action;
import com.opensymphony.xwork2.ActionSupport;

public class UserAction extends ActionSupport {
    private static final long serialVersionUID=1L;
    public String execute() throws Exception{
        return SUCCESS;
    }
}

6.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="com.action.LoginAction">
            <result type="redirectAction">
                <param name="actionName">userLogin</param>
                <param name="namespace">/user</param>
            </result>
            <result name="error" type="redirectAction">error</result>  <!--此处的name为LoginAction.redirect传过来的值ERROR-->
        </action>
        <action name="error">
            <result>/error.jsp</result>
        </action>
    </package>
    <package name="user" extends="struts-default" namespace="/user">
        <action name="userLogin" class="com.action.UserAction">
            <result>
                /hello.jsp
            </result>
        </action>
    </package>
</struts>

7.error.jsp & hello.jsp

<body>
    <center>
        <h2>error</h2>
    </center>
</body>

<body>
    <center>
        <h2>hello</h2>
    </center>
</body>
时间: 2024-12-18 20:20:26

redirect-action的相关文章

struts2 中chain、redirect、redirect-action的区别

struts2 中chain.redirect.redirectaction的区别 文章摘要: 一.Chain Result:这个result调用另外的一个action,连接自己的拦截器栈和result. ?actionName (默认) - 被调用的action的名字?namespace - 被调用的action的名称空间. 如果名称空间为空,这默认为当前名称空间?method - 用于指定目标action的另一个方法被调用. 如果空,默认为excute方法Redirect Action Re

result重定向到一个action

1. type="redirectAction" 2. 编写规则在: 3.guides 4. result types 5. redirect action result 6.例子

两个action之间进行跳转

名字 说明 Chain 用来处理Action链 Dispatcher 用来转向页面,通常处理JSP FreeMarker 处理FreeMarker模板 HttpHeader 用来控制特殊的Http行为 Redirect 重定向到一个URL Redirect Action 重定向到一个Action Stream 向浏览器发送InputSream对象,通常用来处理文件下载 Velocity 处理Velocity模板 XLS 处理XML/XLST模板 PlainText 显示原始文件内容,例如文件源代

Grails的redirect无法跳转时的一个可能原因

由于controller的命名一般首字母大写,如Login 此时如 class LoginController { def index = { redirect(action:Login, params: params) } def login={ } 这时就会发生无法找到Login这个controller的错误 注意 此时Login 应该改为小写开头 如下 class LoginController {def index = { redirect(action:login, params: p

struts2 action重定向action

一共有三种方式redirect,redirect-action,chain 区别如下 1 redirect:action处理完后重定向到一个视图资源(如:jsp页面),请求参数全部丢失,action处理结果也全部丢失. 2 redirect-action:action处理完后重定向到一个action,请求参数全部丢失,action处理结果也全部丢失. 3 chain:action处理完后转发到一个action,请求参数全部丢失,action处理结果不会丢失. 今天碰到的bug显示提示另一个act

Laravel5.1 搭建简单的社区(六)--发表帖子

首先我们先登陆我们的用户,访问/discussions/create 路由,因为这条路由在resource声明了 所以我们直接在PostsController中的create方法中直接实现逻辑就好: public function create() { return view('forum.create'); } 相应的 创建create页面: @extends('app') @section('content') <div class="container"> <d

Laravel学习

Laravel是个很强大的PHP框架,它剔除了开发中Web开发中比较痛苦的过程,提供了验证(authentication),路由(routing),Session和缓存(caching)等开发过程中常用到的工具或者功能. Laravel的配置都存放在app/config中. 里面所有的*.php都按照return的形式返回数据,那么就可以使用Config::get("key")来获取配置.使用Config::set("key", "value")

laravel框架总结(一) -- 请求和响应

一.laravel请求 1.获取请求 1>获取请求的 URI path 方法会返回请求的 URI.所以,如果接收到的请求目标是 http://domain.com/foo/bar,那么 path 方法就会返回 foo/bar: $uri = $request->path(); is 方法可以验证接收到的请求 URI 与指定的规则是否相匹配.使用此方法时你可以将 * 符号作为通配符: if ($request->is('admin/*')) { // } 使用 url 方法,可以获取完整的

003.ASP.NET MVC集中管理Session

原文链接:http://www.codeproject.com/Tips/790387/Session-in-ASP-NET-MVC 1.前言 今天有得有失啊,看到这篇,专心记下里面的精华吧 2.一般在Web程序中,使用Session可能会有以下的用途 a.检查用户是否登录 b.保存权限信息 c.保存临时数据 有时,我们会频繁地改变Session保存的对象,现在,我们尝试在一个Controller中集中管理Session,这样可以应用于其它的Controller,达到重用的效果 3.在开始之前,