`

Struts2 part 2:Action的编写方式

阅读更多

  

Action的编写方式:

1、POJO对象

public class RequestAction {
	public String execute() {

		return "success";
	}
}

 2、实现Action接口

public class RequestAction2 implements Action {

	@Override
	public String execute() throws Exception {
		return SUCCESS;
	}
}

 接口中定义了5种逻辑视图名称

public static final String SUCCESS = "success";  // 数据处理成功 (成功页面)
public static final String NONE = "none";  // 页面不跳转  return null; 效果一样
public static final String ERROR = "error";  // 数据处理发送错误 (错误页面)
public static final String INPUT = "input"; // 用户输入数据有误,通常用于表单数据校验 (输入页面)
public static final String LOGIN = "login"; // 主要权限认证 (登陆页面)

3、继承ActionSupport类

public class RequestAction3 extends ActionSupport {

	@Override
	public String execute() throws Exception {
		return SUCCESS;
	}
}

 这种方式更为常用,ActionSupport实现了表单校验、错误信息设置、读取国际化信息 三个功能

public class ActionSupport implements Action, Validateable, ValidationAware, TextProvider, LocaleProvider, Serializable {}

 

 Action中的方法调用

1、通过mehtod属性配置

链接 

	<a href="${pageContext.request.contextPath }/demo03/regist.action">注册</a>

编写Action类,采用继承ActionSupport这种方式

public class RegistAction extends ActionSupport {
	@Override
	public String execute() throws Exception {
		System.out.println("RegistAction--execute()");
		return NONE;
	}

	public String regist() {
		System.out.println("RegistAction--regist()");
		return NONE;
	}
}

 struts配置

<package name="demo03" namespace="/demo03" extends="struts-default">
		<action name="regist" class="demo03.RegistAction"  method="regist">
		</action>
	</package>
 如果不配置method属性,将默认执行execute方法,如果配置就执行regist方法,通过这种方式可以将多个业务方法封装到一个Action中,但配置文件并没有减少,要在struts.xml中配置多个<action>

 

 2、使用通配符

链接

	<a href="${pageContext.request.contextPath }/demo03/customer_add.action">新增</a>
	<a href="${pageContext.request.contextPath }/demo03/customer_upd.action">修改</a>
	<a href="${pageContext.request.contextPath }/demo03/customer_del.action">删除</a>

 action类

public class CustomerAction extends ActionSupport {
	public String add() throws Exception {
		System.out.println("CustomerAction--add()");
		return NONE;
	}

	public String upd() throws Exception {
		System.out.println("CustomerAction--upd()");
		return NONE;
	}

	public String del() throws Exception {
		System.out.println("CustomerAction--del()");
		return NONE;
	}
}

 配置

<package name="demo03" namespace="/demo03" extends="struts-default">
		<action name="customer_*" class="demo03.CustomerAction" method="{1}">
		</action>
	</package>

 通过customer_*这种方式简化配置,在method中使用{数字}来调用action中的方法,这是action的命名就必须规范

 使用两个通配符

//jsp
<a href="${pageContext.request.contextPath }/demo03/AAAAction_add.action">删除</a>
//action
public class AAAAction extends ActionSupport {
	public String add() {
		return NONE;
	}
}
//struts配置
<action name="*Action_*" class="demo03.{1}Action" method="{2}">
		</action>

 3、动态方法调用

在struts.xml配置常量,开启动态方法调用

<constant name="struts.enable.DynamicMethodInvocation" value="true" />

 页面链接,使用"!方法名称"的方式调用action中方法

	<a href="${pageContext.request.contextPath }/demo03/customer!add.action">新增</a>
	<a href="${pageContext.request.contextPath }/demo03/customer!upd.action">修改</a>
	<a href="${pageContext.request.contextPath }/demo03/customer!del.action">删除</a>

 action类

public class ProductAction extends ActionSupport {
	public String add() throws Exception {
		System.out.println("CustomerAction--add()");
		return NONE;
	}

	public String upd() throws Exception {
		System.out.println("CustomerAction--upd()");
		return NONE;
	}

	public String del() throws Exception {
		System.out.println("CustomerAction--del()");
		return NONE;
	}
}

 配置,不用配置method,也不用通配符,这种方式结合注解,struts可以近乎于零配置

	<action name="product" class="demo03.ProductAction">

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    精通Struts:基于MVC (part 2)共分5个part

    本文将围绕标题“精通Struts:基于MVC (part 2)”进行展开,并结合描述中的内容:“这是一本关于Struts很好的书,书中全面地介绍了Struts框架在J2EE中的完美运用...”,来生成相关的知识点。 ### Struts框架简介 ...

    struts2的pdf教程

    学习Struts2时,首先要了解其基本架构和原理,然后逐步深入到具体的配置、Action编写、拦截器使用、结果类型设置等方面。此外,还需要掌握如何利用Struts2进行异常处理、国际化以及与Spring、Hibernate等其他框架的...

    Struts2视频学习代码part2

    这个"Struts2视频学习代码part2"着重讲解了Struts2的核心组件和实际应用,包括Action、Results以及OGNL(Object-Graph Navigation Language)表达式,并提供了一个具体的BBS论坛的应用示例。 1. **Action**:在...

    Struts2笔记

    5. **`web.xml`**:虽然不是Struts2专有的配置文件,但在其中通过`&lt;include&gt;`标签引用其他配置文件(如`struts-part1.xml`),可以实现更灵活的配置管理。 #### 五、流程控制结果类型 Struts2支持多种结果类型,...

    Struts2知识点总结

    Struts2通过拦截器机制提供了一种非常简洁的方式来处理文件上传和下载。要实现文件上传,只需要在Action类中添加一个实现了Part接口的属性,并使用@Upload注解标记。Struts2的文件上传拦截器会自动处理上传的文件,...

    Struts2之Servlet文件上传详解案例struts010

    综上所述,本案例“Struts2之Servlet文件上传详解”将引导你了解如何结合Struts2和Servlet实现文件上传功能,包括配置、Action编写、JSP页面设计以及注意事项。通过实践,你将更深入地理解Struts2框架在处理复杂Web...

    Ckeditor 上传例子 servlet方式 struts2方式

    Servlet方式适用于不使用任何Web框架的情况,而Struts2方式则适合已经采用Struts2的项目,它提供了更丰富的功能和更简洁的代码结构。无论哪种方式,都需要关注安全性,如防止文件注入攻击,以及优化性能,例如通过...

    精通Struts:基于MVC (part 3)共分5个part

    ### 精通Struts:基于MVC (Part 3) #### Struts框架概述 Struts是一个开源的Java Web应用程序框架,它遵循Model-View-Controller(MVC)设计模式。MVC是一种软件架构模式,它将应用程序分为三个主要部分:模型、...

    struts2的学习笔记+测试源代码

    通过这篇学习笔记和提供的测试源代码,你可以深入理解Struts2框架下多文件上传的实现过程,包括前端页面的构建、后台Action的编写以及文件的保存逻辑。这不仅有助于提升你的Java Web开发技能,也能帮助你在实际项目...

    struts-2.3.1.2-part2.rar

    1. Struts 2配置:XML配置文件(struts.xml)的编写,定义Action、Result和Interceptor。 2. Action与结果:定义业务逻辑类,以及处理完成后返回的结果页面。 3. 拦截器:自定义拦截器以实现如登录检查、日志记录等...

    Struts 数据库项目开发宝典(part2)

    在"Struts数据库项目开发宝典(part2)"中,我们继续深入探讨如何使用Struts与数据库进行交互,以实现动态、数据驱动的Web应用程序。 首先,`META-INF`目录在Java项目中扮演着重要角色,它是Java存档(JAR)文件的...

    Struts2+SWFUpload上传文件并显示进度条

    通过这种方式,我们可以在Struts2应用中实现文件的快速上传,并且提供直观的进度条反馈,让用户了解文件上传的状态,从而提高应用的易用性。在实际开发过程中,还需要注意兼容不同浏览器,因为Flash在某些现代浏览器...

    Struts AJAX文件上传

    2. **添加Struts XML配置**:在Struts的配置文件(struts.xml)中,定义一个Action映射,将用户的文件上传请求映射到刚才创建的Action上。 3. **创建上传表单**:在HTML页面中,创建一个包含`&lt;input type="file"&gt;`...

    struts2多文件上传和下载

    然后,在Struts2的Action类中创建一个`List&lt;File&gt;`或`List&lt;Part&gt;`类型的属性来接收上传的文件。Action类中的方法需要使用`@FileUploadAction`注解,并在配置文件中设置允许上传的文件大小和类型。 2. **表单设计** ...

    传智播客struts2.1视频教程—源代码

    10. **实战项目**:通过实例演示如何从零开始搭建一个完整的Struts2.1应用,包括创建Maven项目、添加依赖、编写Action、配置Struts2、实现视图等步骤。 本教程的源代码部分将提供每个章节实例的完整代码,让学习者...

    Struts2上传实例

    总的来说,Struts2的文件上传涉及配置、Action类编写、表单设计以及错误处理等多个方面。理解这一过程有助于开发者更好地掌握Struts2框架,并在实际项目中灵活应用。通过以上步骤,你已经具备了实现一个简单的Struts...

    解决Struts2与SWFupload上传冲突问题

    在struts.xml配置文件中,为使用SWFupload的Action添加特定的拦截器链,以避免Struts2默认的文件上传处理。可以创建一个新的Interceptor,例如`swfUploadInterceptor`,然后在Action配置中使用它: ```xml ...

    struts笔记

    2. **编写Action类**:接下来,创建一个名为`UploadAction`的Action类,该类继承自`ActionSupport`,并定义相应的属性和方法。 ```java public class UploadAction extends ActionSupport { private String ...

Global site tag (gtag.js) - Google Analytics