DispatchAction跳转

一:编写界面

login.jsp

<body>

<h1>用户登录</h1>

<form action="/dispatchAction/loginandLoginout.do?flag=userLogin" method="post">

u:<input type="text" name="name"/><br/>

p:<input type="password" name="password"/><br/>

<input type="submit" value="login"/>

</form>

</body>

ok.jsp

<body>

<h1>登陆成功</h1>

<a href="/dispatchAction/loginandLoginout.do?flag=userLogout1">退出登录方式1</a><br/>

<a href="/dispatchAction/loginandLoginout.do?flag=userLogout2">退出登录方式2</a><br/>

</body>

二:编写userForm表单

public class UserForm extends ActionForm {

private String name;

private String password;

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public String getPassword() {

return password;

}

public void setPassword(String password) {

this.password = password;

}

}

三:编写DispatchAction跳转方法

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.ActionForm;

import org.apache.struts.action.ActionForward;

import org.apache.struts.action.ActionMapping;

import org.apache.struts.actions.DispatchAction;

import com.cloud.struts.form.UserForm;

public class LoginandLoginoutAction extends DispatchAction {

//响应登录请求请求

public ActionForward userLogin(ActionMapping mapping, ActionForm form,

HttpServletRequest request, HttpServletResponse response) {

UserForm userForm=(UserForm)form;

if("123".equals(userForm.getPassword())){

return mapping.findForward("loginok");

}else{

return mapping.findForward("gologin");

}

}

//该函数用于响应注销请求

public ActionForward userLogout1(ActionMapping mapping, ActionForm form,

HttpServletRequest request, HttpServletResponse response) {

//把用户的session清空

System.out.println("userLogout1");

request.getSession().invalidate();

return mapping.findForward("gologin");

}

public ActionForward userLogout2(ActionMapping mapping, ActionForm form,

HttpServletRequest request, HttpServletResponse response) {

//把用户的session清空

System.out.println("userLogout2");

request.getSession().invalidate();

return mapping.findForward("gologin");

}

}

四:画出跳转图解

对应的struts-config.xml代码

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN" "http://struts.apache.org/dtds/struts-config_1_3.dtd">

<struts-config>

<form-beans >

<form-bean name="userForm" type="com.yourcompany.struts.form.UserForm" />

</form-beans>

<global-exceptions />

<global-forwards />

<action-mappings >

<!-- parameter="flag" 用于区分用户的不同请求 -->

<action

attribute="userForm"

input="/WEB-INF/ok.jsp"

name="userForm"

parameter="flag"

path="/loginAndLogout"

scope="request"

type="com.yourcompany.struts.action.LoginAndLogoutAction"

validate="false"

cancellable="true">

<forward name="loginok" path="/WEB-INF/ok.jsp" />

<forward name="gologin" path="/WEB-INF/login.jsp" />

</action>

</action-mappings>

<message-resources parameter="com.yourcompany.struts.ApplicationResources" />

</struts-config>

版权声明:博主原创文章,转载请说明出处。http://blog.csdn.net/dzy21

时间: 2024-07-31 00:43:45

DispatchAction跳转的相关文章

Struts1.3——DispatchAction、DynamicForm和全局跳转

1.DispatchAction-分派Action 1.1 为什么需要DispatchAction 如果每个请求都对应一个Action,就会造成action过多,程序显得比较臃肿,所以可以把一类请求写到一个action中处理,即DispatchAction 在没有使用框架之前,当我们通过一个控制器处理多个请求的时候,我们是通过在URL后面跟上参数来区别不同的操作,比如,下述链接: http://localhost:8080/UserManager/main?operateId=add&uid=1

Struts学习DispatchAction之入门篇

步骤: 一.创建JavaWeb工程: 二.创建FormBean代码如下 /* * Generated by MyEclipse Struts * Template path: templates/java/JavaClass.vtl */ package com.zkj.struts.form; import org.apache.struts.action.ActionForm; /** * MyEclipse Struts Creation date: 04-24-2015 * * XDoc

DispatchAction和ForwardAction

添加功能的步骤:做页面--编写DAO类中的方法--编写和配置action. 如果多个action 使用一个formbean,这种事儿多发生在统一模块中,就可以用一个Action集中处理多个操作,而不要创建多个Action,是代码结构更加简洁. 可以使用 DispatchAction,需要引入struts-extras-1.3.10.jar 这个jar在struts 的blank 示例项目中没有可以在lib中找到,将其导入,有了该jar包才能以下的类 org.apache.struts.actio

struts1.3中使用DispatchAction的一个问题

最近做项目发现我们公司的项目是用struts1写的,在多方百度下,总有理解了struts1.3的DispatchAction的用法 一:struts.xml文件的配置 <?xml version="1.0" encoding="utf-8" ?> <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN&q

微信支付开发(APP)的各种坑,.net和iOS的各种陷阱,解决.net调用下单接口提示无权限,解决iOS跳转到微信支付页面中间只有一个确定按钮

直入主题之前,请容我吐槽一下微*的官方东西:ASDFQ%#$%$#$%^[email protected]#$%DSFQ#$%.......:吐槽玩了!大家心照就好. 要完成手机APP跳转到微信的APP进行微信支付,需要进行如下操作: 1.先去微信的开放平台(http://open.weixin.qq.com)进行开发者账号的注册. 2.新建一个APP应用,然后填写必填信息提交审核. 3.进入APP应用,在接口信息中,进行申请“获得微信支付能力”的功能,期间会提交相关的公司营业信息证明等. 通过

SpringMVC中redirect跳转后如何保存Model中的数据?

@RequestMapping(value = "delete-user", method = RequestMethod.POST) public String deleteUser(Long[] userId, RedirectAttributes modelMap) { userService.deleteUser(userId); modelMap.addFlashAttribute("resultMsg", "删除成功"); retur

跳跳棋(9018_1563)(BZOJ_2144)

题目: Hzwer的跳跳棋是在一条数轴上进行的.棋子只能摆在整点上.每个点不能摆超过一个棋子. 某一天,黄金大神和cjy用跳跳棋来做一个简单的游戏:棋盘上有3颗棋子,分别在a,b,c这三个位置.他们要通过最少的跳动把它们的位置移动成x,y,z.(棋子是没有区别的) 跳动的规则很简单,任意选一颗棋子,对一颗中轴棋子跳动.跳动后两颗棋子距离不变.一次只允许跳过1颗棋子. 写一个程序,首先判断是否可以完成任务.如果可以,输出最少需要的跳动次数. 这道题的状态是可以在树上处理的,对于一个中间到两端距离不

2016蓝桥杯省赛C/C++A组第二题 跳蚱蜢

题意:有9只盘子,排成1个圆圈.  其中8只盘子内装着8只蚱蜢,有一个是空盘. 我们把这些蚱蜢顺时针编号为 1~8 每只蚱蜢都可以跳到相邻的空盘中,也可以再用点力,越过一个相邻的蚱蜢跳到空盘中.  请你计算一下,如果要使得蚱蜢们的队形改为按照逆时针排列,  并且保持空盘的位置不变(也就是1-8换位,2-7换位,...),至少要经过多少次跳跃?  注意:要求提交的是一个整数,请不要填写任何多余内容或说明文字. 分析:结果是20. #include<bits/stdc++.h> using nam

URL Schemes 不能识别和不能跳转的原因

在app跳转的过程中 需要设置url schemes后,但是设置完后,却不能识别, (测试方式:URL scheme + ://)在浏览器中打开,如果能打开app,就是能跳转 今天遇到了一个坑爹的问题,我设置成了,test_app.com 搞了好久就是不行,最后发现,格式问题,换成testapp就好了, 个人建议:不要加特殊字符,毕竟是url嘛