`
CoderDream
  • 浏览: 478365 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

【张冰Struts2学习笔记】0202_Struts2的三种接收用户输入的方法

阅读更多

Struts2的三种接收用户输入的方法

 

1.      利用 action 类的属性接收用户输入

这种方式最简单,在action 中创建需要的属性,然后添加gettersetter 方法:

代码清单1 Login1Action.java

 

package com.coderdream.action;
 
public class Login1Action {
      private String username ;
      private String password ;
 
      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 execute() {
           if ("aaa" .equalsIgnoreCase(username .trim())
                      && "123" .equalsIgnoreCase(password .trim())) {
                 return "success" ;
           } else {
                 return "failure" ;
           }
      }
 
} 
 

 

jsp 中调用(输入):

代码清单 2 login.jsp 片段

 

1 、利用 action 类的属性接收用户输入:
< br />
< form action =" <%= path%> /login1.action" method ="POST" >
      姓名:
      < input type ="text" name ="username " >
      < br />
      密码:
      < input type ="text" name ="password " >
      < br />
      < input type ="submit" name =" 登录 " >
      < br />
</ form >  

jsp 中调用(输出):

代码清单 3 login1Suc.jsp 片段

欢迎 < s:property value ="username " /> ,登录成功! 

 

 

2.      利用领域对象( VO )接收用户输入

先创建VO 对象,在对象中创建需要的属性,然后添加gettersetter 方法:

代码清单 4 User.java

 

package com.coderdream.vo;
 
public class User {
      private String username ;
      private String password ;
 
      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;
      }
} 
 

 

action 中创建User 对象,并添加该对象的gettersetter 方法:

代码清单 5 Login2Action.java

 

package com.coderdream.action;
import com.coderdream.vo.User;
import com.opensymphony.xwork2.Action;
public class Login2Action implements Action {
      private User user ;
      public User getUser() {
           return user ;
      }
      public void setUser(User user) {
           this .user = user;
      }
      public String execute() {
           if ("aaa" .equalsIgnoreCase(user .getUsername().trim())
                      && "123" .equalsIgnoreCase(user .getPassword().trim())) {
                 return SUCCESS ;
           } else {
                 return INPUT ;
           }
      }
} 

 

 

jsp 中调用,需要使用user 对象名(输入):

代码清单 6 login.jsp 片段

 

2 、利用领域对象( VO )接收用户输入:
< br />
< form action =" <%= path%> /login2.action" method ="POST" >
      姓名:
      < input type ="text" name ="user.username " >
      < br />
      密码:
      < input type ="text" name ="user.password " >
      < br />
      < input type ="submit" name =" 登录 " >
      < br />
</ form > 
 

jsp 中调用,需要使用user 对象名(输出):

代码清单 7 login1Suc.jsp 片段

欢迎 < s:property value ="user.username " /> ,登录成功! 
 

3.      使用 ModelDriven 模式接收用户输入

使用这种方式时,需要实现下面的接口:

 

com.opensymphony.xwork2

Interface ModelDriven <T>

public interface ModelDriven<T>ModelDriven Actions provide a model object to be pushed onto the ValueStack in addition to the Action itself, allowing a FormBean type approach like Struts. 
 

然后在action 中创建需要的模型,最后实现getModel() 方法:

代码清单 8 Login3Action.java

 

package com.coderdream.action;
 
import com.coderdream.vo.User;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
 
public class Login3Action extends ActionSupport implements ModelDriven<User> {
 
      private User user = new User();
 
      public User getModel() {
           return user ;
      }
 
      public String execute() {
           if ("aaa" .equalsIgnoreCase(user .getUsername().trim())
                      && "123" .equalsIgnoreCase(user .getPassword().trim())) {
                 return SUCCESS ;
           } else {
                 return INPUT ;
           }
      }
 
} 

 

jsp 中调用,不需要使用User 对象,直接通过属性名获取(输入):

代码清单 9 login.jsp 片段

 

3 、使用 ModelDriven 模式接收用户输入:
< br />
< form action =" <%= path%> /login3.action" method ="POST" >
      姓名:
      < input type ="text" name ="username " >
      < br />
      密码:
      < input type ="text" name ="password " >
      < br />
      < input type ="submit" name =" 登录 " >
      < br />
</ form > 
 

jsp 中调用,不需要使用User 对象,直接通过属性名获取(输出):

代码清单 10 login1Suc.jsp 片段

欢迎 < s:property value ="username " /> ,登录成功! 

 

4.      三种方式小结

    Java代码 jsp代码 备注
1 利用action类的属性接收用户输入 通过属性的getter/setter方法设置和使用属性 输入与输出:属性名
<input type="text" name="username
">
<s:property value="
username " />
属性很多时,action中的代码会非常多
2 利用领域对象(VO)接收用户输入 通过对象的getter/setter方法设置和使用对象 输入与输出:对象.属性名
<input type="text" name="user.username
">
<s:property value="
user.username " />
 
3 使用ModelDriven模式接收用户输入 在创建属性对象时就创建对象,然后通过getModel()方法使用对象 输入与输出:属性名
<input type="text" name="username
">
<s:property value="
username " />
在Java和jsp代码调用很方便,不需要对象名

5.      源代码

附件。

 

我的联系方式: 85337464

我的博客: http://coderdream.iteye.com

 

1
0
分享到:
评论

相关推荐

    【张冰Struts2学习笔记】0102_第一个Struts2实例

    【张冰Struts2学习笔记】0102_第一个Struts2实例 在Java Web开发领域,Struts2框架是十分重要的MVC(模型-视图-控制器)架构之一,它极大地简化了Web应用程序的开发流程。这篇学习笔记将带你入门Struts2,通过创建...

    【张冰Struts2学习笔记】0103_Path与绝对路径

    标题中的“【张冰Struts2学习笔记】0103_Path与绝对路径”表明了这篇笔记主要讨论的是Struts2框架中关于Path和绝对路径的概念及其应用。Struts2是一个流行的Java Web开发框架,它提供了强大的MVC(模型-视图-控制器...

    【张冰Struts2学习笔记】0201_Action接口与ActionSupport类

    在Struts2框架的学习中,`Action`接口与`ActionSupport`类是核心组件,用于处理用户请求并返回相应的结果。本篇笔记将深入探讨这两个关键概念,以及它们在实际开发中的应用。 首先,`Action`接口是Struts2框架中...

    Struts2_张冰_视频教程课件_PPT

    这个“Struts2_张冰_视频教程课件_PPT”资源是专门针对Struts2框架的学习资料,由知名讲师张冰制作,旨在帮助学习者深入理解并掌握Struts2的核心概念和技术。 首先,我们来探讨一下Struts2框架的基础知识。Struts2...

    struts2 PPT 张冰

    Struts2是一个强大的Java web应用程序开发框架,由Apache软件基金会维护。它基于MVC(Model-View-Controller)设计模式,旨在简化企业级应用...通过学习这个PPT,开发者可以更好地掌握Struts2框架,提升项目开发效率。

    张冰主讲的struts2 ppt

    Struts2是一个强大的Java ...通过张冰主讲的Struts2 PPT,开发者不仅能学习到上述基础知识,还能了解到实际项目中的最佳实践和常见问题解决方案。这份PPT对于想要深入了解和掌握Struts2框架的人来说是一份宝贵的资源。

    张冰struts原代码(全部1-6)之五

    "张冰struts原代码(全部1-6)"这个系列可能涵盖了上述所有知识点,通过实际代码示例帮助学习者深入理解Struts框架的工作原理及其在实际项目中的应用。通过分析和研究这些源码,你可以更好地掌握Struts开发技能,为...

    张冰struts原代码(全部1-6)之二

    张冰struts原代码(全部1-6)张冰struts原代码(全部1-6)张冰struts原代码(全部1-6)张冰struts原代码(全部1-6)张冰struts原代码(全部1-6)张冰struts原代码(全部1-6)

    张冰struts原代码(全部1-6)之六

    这个“张冰struts原代码(全部1-6)”系列可能是一个教程或者一系列的学习资源,由张冰提供,涵盖了Struts框架的基础到高级应用,包括了六个部分的内容。 1. **Struts框架基础**:Struts框架的核心是ActionServlet,...

    张冰struts原代码(全部1-6)之一

    张冰struts原代码(全部1-6)张冰struts原代码(全部1-6)张冰struts原代码(全部1-6)张冰struts原代码(全部1-6)张冰struts原代码(全部1-6)张冰struts原代码(全部1-6)张冰struts原代码(全部1-6)张冰struts原代码(全部1-6)

    张冰struts原代码(全部1-6)之三

    这个“张冰struts原代码(全部1-6)”系列可能是一个教学资源,包含了六个部分,旨在帮助学习者深入理解Struts框架的工作原理和实现细节。以下是基于提供的文件名推测的各个部分可能涉及的关键知识点: 1. **test-...

    张冰struts原代码(全部1-6)之四

    张冰struts原代码(全部1-6)张冰struts原代码(全部1-6)张冰struts原代码(全部1-6)张冰struts原代码(全部1-6)

    张冰主讲的Struts2的PPT

    首先,在Action类的设计上,Struts1要求Action类继承自特定的抽象基类,而Struts2则允许Action类实现Action接口,甚至可以是任何带有execute方法的POJO(Plain Old Java Object),这大大提高了灵活性和可定制性。...

    struts2.ppt完整包

    这个"struts2.ppt完整包"中很可能还涵盖了上述知识点的实例、最佳实践和常见问题解答,通过"张冰主讲的Struts2的PPT.ppt"这样的资源,学习者可以得到更深入的指导和理解。而"struts4.ppt"可能涉及的Struts4信息可能...

    Struts2 ppt

    在张冰老师的Struts2 PPT中,我们可以预见到以下关键知识点: 1. **MVC模式**:Struts2基于MVC设计模式,使得业务逻辑、数据和用户界面分离,提高了代码的可维护性和可重用性。Controller(控制器)是Struts2的核心...

    张冰老师的SSH2整合心得

    SSH2整合是指将Struts2、Hibernate和Spring这三大开源框架集成为一个整体,以实现更高效、灵活的企业级应用开发。在本文中,我们将深入探讨张冰老师分享的SSH2整合过程,并以用户注册为例,详细说明每个步骤。 1. *...

    传智播客Struts2的PPT

    传智播客Struts2的PPT,是传智播客黎活明老师的东西,和视频是配套的东西还不错

    C面向对象程序设计张冰PPT学习教案.pptx

    综上所述,《C面向对象程序设计张冰PPT学习教案》不仅深入浅出地介绍了面向对象编程的基本概念,而且还通过具体的实例来展示如何利用结构化程序设计的方法来解决问题,并指出了其局限性以及如何通过面向对象的方法来...

    C++面向对象程序设计 张冰 课件、源代码

    张冰教授的课件和源代码很可能是为了辅助学习这些概念而设计的,通过实际编程例子和练习,帮助学生加深理解和应用这些知识。源代码可能涵盖了各种面向对象的设计模式,如工厂模式、单例模式、观察者模式等,这些都是...

Global site tag (gtag.js) - Google Analytics