`
阅读更多
此文主要来自www.blogjava.net/Max的实例

Struts 2.0
支持更高级的POJO访问,先定义一个User.java类。把usernamepassword属性,从Login类中分离出来,它可以使系统结构更清晰,对开发多层系统尤其有用。


User.java
package com.bulktree.struts2;

public class User {
    
private String username;
    
private String password;
    
public String getUsername() {
        System.out.println(
"******getUsername()******");
        
return username;
    }

    
public void setUsername(String username) {
        System.out.println(
"*******setUsername()********");
        
this.username = username;
    }

    
public String getPassword() {
        System.out.println(
"******getPassword()*******");
        
return password;
    }

    
public void setPassword(String password) {
        System.out.println(
"******setPassword()*********");
        
this.password = password;
    }

}

login2.jsp
<s:form action="login2" method="post">
        
<s:textfield name="user.username" label="USERNAME" tooltip="Enter Your UserName"></s:textfield>
        
<s:password name= "user.password" label="PASSWORD" tooltip="Enter Your PassWord"></s:password>
        
<s:submit label="login"></s:submit>
    
</s:form>
struts.xml文件中action配置:
<action name="login2" class="com.bulktree.struts2.LoginAction2">
            
<result name="success">/welcome.jsp</result>
            
<result name="input">/login2.jsp</result>
        
</action>
LoginAction2.java:
package com.bulktree.struts2;

import com.opensymphony.xwork2.ActionSupport;

public class LoginAction2 extends ActionSupport {
    
    
private User user;
    
private String message;
    
    
public void setUser(User user) {
        System.out.println(
"********setUser()***********");
        
this.user = user;
    }

    
    
public User getUser() {
        System.out.println(
"*********getUser()*************");
        
return user;
    }


    
public String getMessage() {
        System.out.println(
"************getMessage()********");
        
return message;
    }

    
    @Override
    
public String execute() throws Exception {
        System.out.println(
"*****execute()******");
        
if("bulktree".equals(user.getUsername()) && "oakertree".equals(user.getPassword())) {
            message 
= "Welcome, " + user.getUsername();
        }
 else {
            message 
= "Error!";
        }

        
return ActionSupport.SUCCESS;
        
    }

    @Override
    
public void validate() {
        System.out.println(
"******validate()******");
        
if(null == user.getUsername() || user.getUsername().length() < 5{
            
this.addFieldError("username","USERNAME ERROR");
        }

        
if(null == user.getPassword() || user.getPassword().length() < 5{
            
this.addFieldError("password","PASSWORD ERROR");
        }

    }

    
}

welcome.jsp:
YOUR USERNAME:<FONT size="5" color="red"><s:property value="user.username"/></FONT><br>
    YOUR PASSWORD:
<FONT size="5" color="red"><s:property value="user.password"/></FONT><br>
控制台输出及分析:
*********getUser()*************  //得到User类的实例
********setUser()***********  //执行setUser(),准备赋值操作
******setPassword()*********  //set赋值操作,此时是真正的赋值
*********getUser()*************  //得到User类的实例
*******setUsername()********  //set赋值操作,此时是真正的赋值
以上有struts2框架自动执行
******validate()******  //表单验证
******getUsername()******  //表单验证时调用get方法(判断username)
******getUsername()******  //表单验证时第二次调用get方法(判断username)
******getPassword()******* //表单验证时调用get方法(判断password)
******getPassword()*******  //表单验证时第二次调用get方法(判断password)
*****execute()******  //业务逻辑
******getUsername()******  //调用get方法
******getPassword()*******  //调用get方法
一下由Struts2框架自动执行
*********getUser()************* //得到User类的实例
******getUsername()******  //自动执行get方法
********getUser()*************  //得到User类的实例
******getPassword()*******  //自动执行get方法

我们可以把类的属性分离出来实现系统架构清晰、明了。


分享到:
评论

相关推荐

    Struts2表单数据获取项目

    Struts2是一个强大的Java web应用程序开发框架,它简化了MVC(模型-视图-控制器)架构的实现,...通过学习和实践这个项目,开发者可以深入了解Struts2处理表单数据的流程,并能有效地应用于实际的Web应用程序开发中。

    struts1和struts2的区别

    - **Struts2**: 使用OGNL进行数据绑定,支持更高级的数据绑定操作。 #### 验证机制 - **Struts1**: 支持ActionForm的内置验证机制,并且可以通过Commons Validator进行扩展。 - **Struts2**: 提供了更强大的验证...

    Struts2详细分类流程API文档

    这个“Struts2详细分类流程API文档”集合包含了关于Struts2框架的核心概念、流程以及API的详细信息,对于开发者来说是宝贵的参考资料。 首先,我们来看看Struts2的流程。在Struts2框架中,一个典型的请求处理过程...

    Struts-_1.2.x_请求处理流程图

    在Struts 1.2.x中,请求处理流程是整个框架的核心部分,它涉及到了从用户发起请求到服务器响应的完整过程。下面将详细解释这个流程。 1. **请求开始**: 当用户通过浏览器向服务器发送HTTP请求时,请求通常会指向一...

    应用Struts2处理表单数据

    在处理表单数据方面,Struts2提供了一种高效且灵活的方法,使得开发者能够轻松地从用户提交的表单中获取并处理数据。这篇博客文章“应用Struts2处理表单数据”可能会探讨以下核心知识点: 1. **Action类**:在...

    Struts2 Pojo(六)

    在实际项目中,Struts2 Pojo的应用不仅限于上述几点,还包括错误处理、国际化、表单验证等多个方面。通过充分利用Pojo的特性,开发者可以创建出结构清晰、易于维护的Struts2应用。对于初学者来说,理解并掌握这些...

    留言板留言板struts2留言板struts2

    8. **表单处理**:Struts2提供了强大的表单处理能力,可以自动绑定请求参数到Action的属性,实现数据验证,并将错误信息回显到页面。 9. **异常处理**:Struts2通过全局异常映射(Global Exception Mapping)来统一...

    Struts2视频教程

    #### 二、Struts2入门案例 - **Hello Struts2**:通过创建一个简单的“Hello World”示例,帮助开发者快速上手Struts2的基本配置和运行流程。 - **Action类详解**:Action类是Struts2的核心组件之一,负责处理用户...

    struts2 表单验证 注册

    在Struts2中,你可以创建一个Action类来处理注册请求,这个类通常会有一个与表单对应的Java对象作为属性。每个属性对应一个字段,可以通过`@FieldValidator`注解定义验证规则。此外,还需要在`struts.xml`配置文件...

    struts2jar包

    Struts2是一个强大的Java EE应用程序框架,主要用于构建企业级的Web应用。它的核心是MVC(Model-View-Controller)设计模式,可以帮助开发者组织代码,提高开发效率,并且提供了丰富的特性来支持表单验证、国际化、...

    整合了struts2 jquery的formValidator表单验证的页面代码

    6. **Struts2 Action处理**:在后台,Struts2 Action会接收到Ajax请求,对提交的数据进行校验,如果一切正常,可以进行业务逻辑处理,如保存用户信息,否则返回错误信息。 7. **反馈结果**:最后,前端根据Ajax请求...

    struts2小程序 struts2代码

    8. **Validation框架**:Struts2提供了强大的表单验证功能,可以在Action级别或全局级别定义验证规则。 9. **Plug-in扩展性**:Struts2支持丰富的插件系统,可以方便地集成其他框架,如Spring、Hibernate等。 在`...

    Struts2 处理多个请求

    动态方法调用是Struts2提供的一种机制,允许用户在表单提交时指定一个Action实例下的特定方法来处理请求。在HTML表单中,`action`属性不再是直接指向Action类的名字,而是以`ActionName!methodName.action`的形式...

    struts1的工作流程

    ### Struts1的工作流程详解 #### 一、概述 ...Struts2在很多方面进行了改进,如采用了拦截器机制、支持更多类型的配置文件等。尽管如此,了解Struts1的工作原理对于学习后续版本或类似的框架仍然非常有价值。

    Struts2解决表单重复提交

    对于第二种原因,即提交表单后刷新浏览器页面导致的重复提交,Struts2框架允许开发者通过配置结果视图的跳转方式来解决。默认情况下,Struts2使用的是dispatcher类型的forward跳转。为了避免刷新页面导致的重复提交...

    struts2简单例子

    Struts2是一个强大的Java EE应用程序框架,用于构建MVC(模型-视图-控制器)架构的Web应用。这个“struts2简单例子”是...记得不断探索Struts2的高级特性,如OGNL表达式、插件扩展等,以提升应用的灵活性和可维护性。

    Struts简介 什么是Struts Struts基本运作流程

    #### 二、Struts的基本运作流程 在Struts框架中,每个Web请求都被Struts的核心组件`ActionServlet`处理。`ActionServlet`作为控制器,负责接收用户的请求,并将其分发给相应的`Action`对象处理。下面详细介绍Struts...

    struts2-showcase.rar

    2. **表单验证**:展示了基于Struts2的FieldAware和Validator插件的表单验证机制。 3. **拦截器的使用**:包括预处理和后处理,如LoggingInterceptor、ValidationInterceptor等。 4. **OGNL表达式**:在JSP页面中...

    struts2讲义 struts2讲义struts2讲义struts2讲义struts2讲义

    #### 二、Struts2的核心技术 - **使用web.xml配置Struts2**: - 在web.xml中配置过滤器(Filter),通常使用`FilterDispatcher`作为入口点,它是Struts2的核心组件之一。 - 这个过滤器会捕获所有进入Web应用的HTTP...

    struts2版注册表单.rar

    在表单提交后,Struts2会使用拦截器(Interceptor)机制来处理请求。拦截器是Struts2的一个重要特性,它可以插入到Action调用的前后,执行预处理或后处理任务,如登录检查、日志记录、数据校验等。在这个注册表单...

Global site tag (gtag.js) - Google Analytics