`
Supanccy2013
  • 浏览: 223904 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

一个Action处理多个业务逻辑 || 动态改变form的Action

阅读更多
本例实现:
    注:本例可通过struts.xml文件中指定action的method即可代替。即:实现一个Action类多个业务处理逻辑。
    struts的一个Action处理多个业务逻辑问题,设计到form的动态提交
1,struts.xml配置如下:
<struts> 
   [color=red] <constant name="struts.enable.DynamicMethodInvocation" value="true"></constant>该常量一定要设置为true[/color]
    <!-- 配置的package的name不能和主文件struts中的package名称相同 -->
	<package name="user1" extends="struts-default">
		<action name="login2" class="com.dd.action.LoginAction">
		    <!-- 定义三个逻辑视图和物理资源之间的映射 -->
		    <result name="input">/login.jsp</result>
		    <result name="success">/welcome.jsp</result>
		    <result name="error">/error.jsp</result>
		</action>
		<action name="loginRegist" class="com.dd.action.LoginRegistAction">
		    <result name="input">/loginRegist.jsp</result>
		    <result name="success">/loginRegist.jsp</result>
		</action>
	</package>
</struts>    


2,Action的实现
package com.dd.action;
import com.opensymphony.xwork2.ActionSupport;
public class LoginRegistAction extends ActionSupport {
	private String username;
	private String password;
	private String tip;
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	public String getTip() {
		return tip;
	}
	public void setTip(String tip) {
		this.tip = tip;
	}
	public String regist(){
		System.out.println("注册成功");
		setTip("恭喜,你已经注册成功");
		return SUCCESS;
	}
	@Override
	public String execute() throws Exception {
		System.out.println("登录成功");
		if(getUsername().equals("admin") && getPassword().equals("admin")){
			setTip("恭喜,登录成功");
			return SUCCESS;
		}else{
			setTip("悲哀,登录失败");
			return INPUT;
		}
	}
}

3,用户入库界面代码:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    <title>My JSP 'login.jsp' starting page</title>
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<script type="text/javascript">
	  function loginregist(){
	   myform = document.forms[0];
	   myform.action = "loginRegist!regist";
	   myform.submit();
	  }
	</script>
  </head>
  <body><%--struts标签key对应的是国际化资源文件中的key --%>
    <s:form action="loginRegist">
       <s:textfield name="username" key="user"></s:textfield>
       <s:textfield name="password" key="pass"></s:textfield>
       <input type="button" onclick="loginregist();" value="注册"/>
       <s:submit key="login"></s:submit>
    </s:form>
    <s:property value="tip"/>
  </body>
</html>



分享到:
评论

相关推荐

    Struts1.2Action之处理多个业务

    1. **单一Action处理多个业务**:在一个Action类中定义多个方法,每个方法对应一个业务,然后在struts-config.xml配置文件中为每个方法指定不同的`&lt;action&gt;`元素。请求参数可以用来区分调用哪个方法。 2. **使用...

    给Form动态赋值并动态转向

    动态设置表单的`action`属性并通过JavaScript触发提交,是一种灵活的方式,可以根据不同的业务需求来动态控制页面的跳转。这种方式不仅增强了用户体验,还提高了系统的灵活性和可维护性。在具体实现时需要注意安全性...

    Struts高级部分(2)(常用Action、验证框架、动态Form)

    1. XML配置:在struts.xml文件中定义Action配置,包含一个或多个validate元素,用于指定验证规则。验证失败时,Struts会自动将错误信息添加到ActionContext中,可以在JSP页面中展示。 2. 注解方式:通过在Action类...

    一个form多个submit处理案例

    在这个“一个form多个submit处理案例”中,我们将探讨如何在一个表单中使用多个submit按钮来实现不同的功能。这在实际应用中非常常见,比如在一个订单页面上,用户可能有一个“保存草稿”和“立即购买”的提交选项。...

    Struts2教程:处理一个form多个submit.doc

    在处理一个表单(form)中存在多个submit按钮的情况时,Struts2提供了一种优雅的方式来区分用户点击了哪个按钮,而无需像Struts1那样使用额外的动作类(如LookupDispatchAction或EventDispatchAction)。 在传统的...

    一个from表单提交多个功能

    但是,如果希望在同一个表单中实现多个功能,则需要借助客户端脚本来动态改变`action`属性的值,从而控制表单提交的目标地址。 #### HTML结构 首先,我们需要构建一个包含多个按钮的表单: ```html &lt;form action=...

    EventDispatchAction类处理一个form多个submit

    对于复杂的业务逻辑而言,有时我们需要在一个表单中提供多个提交按钮,以便根据不同的用户需求执行不同的后端逻辑。传统的处理方式可能会导致代码冗余以及维护困难等问题。为了更好地解决这一问题,Struts框架提供了...

    一个Struts1多文件上传实例(附Form中传List示例)

    表单中可以包含一个List类型的参数,允许用户输入多个值。在HTML中,这可以通过多次使用相同name属性的input元素实现。在Struts1中,ActionForm类需要有一个对应的List字段来接收这些值,这样在提交表单时,Struts1...

    struts2笔记之动态调用Action指定方法及默认Action

    Struts2 框架中,一个 Action 可以包含多个处理逻辑,而不是只有一个 execute() 方法。在实际开发中,我们经常需要在一个 Action 中实现多个处理逻辑,这样可以减少代码的重复和提高开发效率。那么,在 Struts2 中...

    一个Form数据拆分到不同的jsp中

    标题中的“一个Form数据拆分到不同的jsp中”是指在Web开发中,如何将一个大型的表单(Form)逻辑拆分成多个独立的JavaServer Pages(JSP)文件,以便更好地管理和维护页面结构。这种做法有助于提高代码的可读性和可...

    JAVA表单上传多个文件 java web form表单上传多个文件.zip_form表单post提交

    在Java Web开发中,表单上传是常见的功能之一,尤其是当用户需要上传多个文件时。本文将详细讲解如何实现这个功能,主要涉及HTML表单、Servlet、MVC框架(如Spring MVC)以及文件处理的相关知识。 1. HTML表单设置...

    Struts2 处理多个请求

    在Struts2框架中,处理多个请求的方法是通过一个Action类实现多个处理方法。这使得代码结构更加清晰,每个方法对应特定的业务逻辑。以下是Struts2处理多个请求的三种主要方式的详细说明: 1. **动态方法调用 (DMI -...

    J2EE_高级Action

    - **应用场景**:当一个页面中有多个提交按钮,每个按钮触发不同的业务逻辑时使用。 #### 三、DispatchAction详解 **1. 实现方法** - 创建一个继承自`DispatchAction`的类,并为其添加多个处理方法,这些方法...

    struts2 result转向到action

    在 Struts2 中使用 `redirect-action` 来实现 Action 之间的跳转是一种常见的做法,特别是在需要按顺序执行多个 Action 的业务场景中。通过这种方式,不仅可以保持应用程序的良好结构,还能有效地组织业务流程。同时...

    一个struts的action跳转大全

    5. **Action与多个Form的交互** ```xml &lt;action path="/anAction" type="somePackage.someActionClass"&gt; name="someForm" input="someJSP.jsp" &lt;forward name="successful" path="/anotherAction.do"/&gt; &lt;/...

    Struts高级部分(2)(常用Action、验证框架、动态Form)笔记

    2. **DispatchAction**: DispatchAction适用于处理多个请求的情况。当一个Servlet需要根据不同的参数值来执行不同操作时,DispatchAction就派上用场了。通过在struts-config.xml中设置parameter属性,我们可以指定...

    通过button将form表单的数据提交到action层的实例

    今天,我们将通过一个实例来演示如何通过按钮将 Form 表单数据提交到 Action 层。 知识点 1: 使用 Button 提交 Form 表单数据 在 HTML 中,我们可以使用 Button 元素来提交 Form 表单数据。 Button 元素有两个主要...

    浅析一个表单多个Submit按钮的简单实现方法

    通常,一个表单只有一个Submit按钮,但有时根据设计需求,我们可能需要在同一个表单中添加多个Submit按钮,以实现不同的提交功能。本文将深入探讨如何在HTML和JavaScript中实现一个表单多个Submit按钮的简单方法。 ...

    StrutsInAction.rar_Struts in Action_StrutsinAction_action _java

    在Struts框架中,Action类是业务逻辑的载体,它接收来自用户请求的数据,执行相应的业务处理,并返回一个表示结果的ActionForward对象,指导请求转向下一个视图。Action类通常继承自Struts提供的抽象基类,如org....

Global site tag (gtag.js) - Google Analytics