在下面用的是只用一个Action 来处理多个Form 的业务处理:
它的原理是:1利用一个隐藏的文本域传一个方法名:然后调用Action中相映的方法:而这个Action一定是一个DispatchAction 代码如下:
package com.struts.action;
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.action.DynaActionForm;
import org.apache.struts.actions.DispatchAction;
public class LoginAction extends DispatchAction {
public ActionForward love(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
DynaActionForm da=(DynaActionForm)form;
System.out.println(da.get("name")+" I love you !");
return null;
}
public ActionForward dislike(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
DynaActionForm da=(DynaActionForm)form;
System.out.println(da.get("name")+" I dislike you !");
return null;
}
public ActionForward miss(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
DynaActionForm da=(DynaActionForm)form;
System.out.println(da.get("name")+" I miss you !");
return null;
}
}
而在jsp中的页面中的代码如下:
<%@ page language="java" pageEncoding="utf-8"%>
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%>
<html>
<head>
<title>JSP for LoginForm form</title>
<script type="text/javascript">
<!--
function _action(_value){
document.forms[0].method.value=_value;
document.forms[0].submit();
}
//-->
</script>
</head>
<body>
<html:form action="/login">
<html:text property="name"/>
<html: hidden property="method"/>
姓名<input type="button" name="" value="love" onclick="_action(this.value)"/>
<input type="button" name="" value="dislike" onclick="_action(this.value)"/>
<input type="button" name="" value="miss" onclick="_action(this.value)"/>
</html:form>
</body>
</html>
如上是一个的一个hidden
然后在struts-config.xml中的配置中如下代码:标明hidden:
<action-mappings >
<action
attribute="loginForm"
input="/form/login.jsp"
name="loginForm"
path="/login"
parameter="method"
scope="request"
type="com.struts.action.LoginAction" />
</action-mappings>
在上面的parameter指定hidden
超链接访问如:<a herf="index.do?mehto=login"></a>
分享到:
相关推荐
在实际开发中,我们经常需要在一个 Action 中实现多个处理逻辑,这样可以减少代码的重复和提高开发效率。那么,在 Struts2 中如何动态调用 Action 的指定方法呢? 首先,我们可以在表单中使用 `<form action="login...
本文档将详细介绍如何在Struts 2中实现Action动态方法调用,并通过实例演示其具体应用。 #### 二、基础知识回顾 在开始深入探讨动态方法调用之前,让我们先回顾一下Struts 2框架的基本概念。 1. **Action**: 在...
在IOC框架中,动态代理的实现方式主要有两种:JDK动态代理和CGLIB动态代理。 1. JDK动态代理:JDK内置的java.lang.reflect.Proxy类和java.lang.reflect.InvocationHandler接口提供了实现动态代理的能力。当被代理的...
你可以通过分析和运行这些示例,进一步掌握如何在实际项目中实现表单提交调用不同Action方法的功能。 总之,理解URL、Action、jsp以及表单提交的交互机制是Web开发中的基础技能。通过学习和实践,你将能够更有效地...
### AspectJ in Action: Enterprise AOP with Spring Applications #### 关键知识点概述 1. **Spring-AspectJ集成:**本书重点介绍了Spring框架与AspectJ相结合的技术优势及其在企业级应用中的强大功能。 2. **...
总之,JavaScript 提供了丰富的API和方法来动态修改`form action`属性,实现表单的灵活提交。这在构建交互性强、用户体验良好的Web应用时非常有用。通过熟练掌握这些技巧,开发者可以创建出更加动态和智能的表单交互...
Android Dynamic Action(动态Action) Android Dynamic Action,简称DA,是一种简便、可变Action的实现方案。DA框架的初衷是为了取代Context.startActivity的调用方式,使用建造者模式(Builder Pattern)构建交互参数...
2. **动态性**:ActionModel可以动态地根据业务环境变化进行调整,无需重新编写代码。 3. **扩展性**:ActionModel支持插件和自定义模块的集成,便于添加新的功能或Action。 **Action与ActionModel的关系** Action...
本项目"基于Ajax的动态树实现"是利用Struts框架和Ajax技术来创建一个交互式的、能实时更新的树形视图。下面将详细介绍这个项目中的关键技术点和实现流程。 首先,Struts是一个Java MVC(Model-View-Controller)...
2. **JavaScript动态修改Action属性**:通过JavaScript可以动态修改表单的`action`属性,从而改变表单提交的目标。这里的`FormSubmit`函数实现了这一功能。 ```javascript function FormSubmit() { document....
综上所述,"Struts2实现动态树结合Hibernate"涉及到的主要知识点有:Struts2 MVC框架的工作原理、Hibernate的实体映射和CRUD操作、前端动态加载的实现、Ajax技术以及Struts2的配置和Action设计。通过整合这些技术,...
在Struts中,控制器主要由ActionServlet实现,它是Servlet的一种,负责调度请求并协调模型和视图。控制器的角色至关重要,因为它管理着应用程序的流程。 2.1 ActionServlet:作为Struts框架的核心,ActionServlet...
### JSP实现首页动态 #### 一、JSP与首页动态化基础 JSP(Java Server Pages)是一种基于Java技术的服务器端脚本语言,它主要用于创建动态网页。通过将HTML代码与Java代码混合编写,可以实现网页内容的动态生成。...
利用ADP(自适应动态规划)中的HDP,实现对非线性离散时间系统的稳定控制。代码利用python实现。构建评价网络(Critic Network)、模型网络(Model Network)和执行网络(Action Network)三个网络。需要安装Pytorch;由于...
在Struts的高级部分,我们主要关注三个方面:常用Action、验证框架以及动态Form。 **一、常用Action** 1. **自定义Action**:在Struts中,Action是业务逻辑处理的核心,它是请求与模型之间交互的桥梁。开发者可以...
本教程将详细讲解如何利用Struts2框架来实现验证码功能。 首先,我们需要理解验证码的基本原理。验证码通常是一串随机生成的字符或数字,用户需要正确输入才能完成特定操作,如登录、注册等。它的主要目标是验证...
Action Parameters是QTP内置的一种传递参数的方式,它允许我们在执行Action时动态传入不同的值。这种方法简单直观,易于理解。 **步骤如下:** - 打开QTP,选择需要添加参数的Action。 - 在“对象仓库”中右键点击...
3. **触控事件处理**:为了实现取景框的拖动和大小调整,我们需要监听`MotionEvent`,并在用户触摸屏幕时响应ACTION_DOWN、ACTION_MOVE和ACTION_UP事件。 4. **图形绘制**:利用`Canvas`和`Paint`对象在SurfaceView...
这在构建动态、交互性强的Web应用中是必不可少的。本项目旨在演示如何在自定义的Action之间进行有效的跳转和参数传递,从而提高开发效率和代码的可维护性。 首先,让我们了解Action的基本概念。在Struts2框架中,...