一.如何开发Action
理论上Action组件不需要继承任何类,实现任何接口,他可以只是一个简单的Java对象。但Strut2还是提供了一些辅助工具。
1. 框架首先提供了一个可选的Action接口。
Pubic interface Action{
Public static final String ERROR=”error”;
Public static final String INPUT=”input”;
Public static final String LOGIN=”login”;
Public static final String NONE=”none”;
Public static final String SUCCESS=”success”;
Public string execute() throws Exception;
}
2. 另外,框架还提供了一个Action的组件的基类ActionSupport,在它实现了Action接口的同时,还实现了另外四个接口:Validateable和ValidationAware接口提供验证功能;TextProvider和LocaleProvide接口提供对本地化和国际化的支持。
二.Action做了什么事Action对web请求的处理包含以下步骤
1. 获取Web请求中的信息
2. 在execute方法中根据获取的Web请求信息进行业务逻辑处理。
3. 返回一个代表处理结果的字符串。
三.项目ActionDemo01,模拟登陆程序
Web.xml
<?xml version="1.0" encoding="GBK"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<display-name></display-name>
<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>
</web-app>
Login.jsp
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<%@taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>登陆</title>
</head>
<body>
<h4>请输入你的用户名和密码:</h4>
<s:form action="Login">
<s:textfield name="username" label="用户名"/>
<s:password name="password" label="密码" />
<s:submit label="登陆" />
</s:form>
</body>
</html>
Success.jsp
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<%@taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>登陆成功</title>
</head>
<body>
<h4><s:property value="username"/>登陆成功</h4>
</body>
</html>
Action
Login.java
package com.luocky.struts2Model;
import com.opensymphony.xwork2.ActionSupport;
public class Login extends ActionSupport {
private static final long serialVersionUID = 1L;
private String username;
private String password;
@Override
public String execute(){
if(username.equals(password)){
return SUCCESS;
}else{
return INPUT;
}
}
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;
}
}
[/code>
Struts.xm;
<?xml version="1.0" encoding="GBK" ?>
<!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" namespace="/" extends="struts-default">
<action name="Login" class="com.luocky.struts2Model.Login">
<result name="success">/Success.jsp </result>
<result name="input">/Login.jsp</result>
</action>
</package>
</struts>
[/code>
执行过程中出现的问题:在Struts.xml中时,误写成
<result name="SUCCESS">/Success.jsp </result>
<result name="INPUT">/Login.jsp</result>
时,出现找不到Action的错误
e]
分享到:
相关推荐
在这个主题“Struts2--3.Action及相关-1”中,我们将深入探讨Struts2的核心组件——Action类及其相关概念。Action类在Struts2中扮演着业务逻辑处理者的角色,它负责接收用户的请求,执行相应的业务操作,并返回结果...
2. 图形表示:R语言支持强大的图形功能,能够创建各种静态和动态的图表。包括基础的散点图、条形图、线图到高级的热图、网络图等,R语言都能提供各种自定义选项以满足研究和展示的需求。 3. 实用示例和教程:第二版...
- **页码范围**:本书涵盖内容丰富,从第1页到至少第119页,涉及OAuth2的基础概念到实践应用以及安全性问题。 #### 二、OAuth2简介与核心价值 **章节1:什么是OAuth2.0以及为什么你应该关心它?** - **定义**:...
### Struts 2 in Action — ...综上所述,“Manning.Struts.2.in.Action”是一本涵盖Struts 2框架各个方面的重要资源,从核心概念到高级主题均有涉猎。无论是初学者还是有经验的开发者,都能从中获得宝贵的指导和启示。
OAuth 2.0的核心概念包括四个主要角色:资源所有者、客户端、资源服务器和授权服务器。资源所有者是拥有数据的用户,客户端是需要访问这些资源的应用,资源服务器存储并提供资源,而授权服务器负责处理授权流程,...
2. **Interceptors(拦截器)**:拦截器是Struts 2框架中的一个重要概念,它们类似于AOP(面向切面编程)中的切面,可以在Action执行前后执行一些预定义的任务。拦截器链允许开发者定义一系列的处理步骤,如日志记录...
2. **索引创建**:学习如何将文本数据转换为可搜索的Lucene索引,包括分词、分析器的选择和使用,以及如何处理不同的数据类型。 3. **分析器(Analyzer)**:分析器在Lucene中扮演着关键角色,负责将输入文本转化...
- **基础概念**:本书首先介绍了jQuery的基本概念,包括选择器、DOM操作、事件处理等核心功能。通过一系列示例代码,帮助读者快速上手,理解jQuery的工作原理。 - **进阶技巧**:随着内容的深入,作者开始探讨更...
《Lucene in Action 第2版》是一本深入探讨Apache Lucene全文搜索引擎库的专业书籍,它在IT领域中具有广泛的影响,特别是在信息检索、文本分析和大数据处理方面。这本书详尽地介绍了Lucene的核心概念和技术,旨在...
本书内容覆盖了MongoDB的基础概念、安装配置、编程实践、高级特性以及系统管理和安全性等多个方面,为读者提供了丰富的知识体系和实用的操作技巧。无论是对于希望学习MongoDB的新手还是寻求提升技能的专业人士来说,...
通过学习《ASP.NET MVC 2 in Action》,读者不仅能掌握ASP.NET MVC 2的核心概念和技术,还能了解到实际开发中的最佳实践,从而能够构建高效、灵活且易于维护的Web应用。这本书适合有.NET开发经验的开发者,尤其是...
### 关于《JUnit in Action 第二版》的知识点解析 #### 一、书籍基本信息与概述 - **书名**:《JUnit in Action 第二版》 - **作者**:Petar Tahchiev, Felipe Leme, Vincent Massol, Gary Gregory - **出版社**:...
### 基于《Manning.DSLs.in.Action》的知识点提炼 #### 一、书籍概览 本书《Manning.DSLs.in.Action》由Debasish Ghosh编写,Jonas Bonér作序,是一本关于领域特定语言(Domain-Specific Languages, DSLs)的专业...
2. **任务和目标**:讲解了Ant中的任务(task)和目标(target)的概念及其使用方法,这是Ant的核心特性之一。 3. **高级构建脚本**:探讨了如何编写复杂且高效的构建脚本来满足不同场景的需求,如多模块项目构建等...