1、在以前的代码中我们我们需要获得jsp传递过来的参数我们采用下面的方式获得

package com.weiyuan.test;

/**
* struct2的action可以不继承任何框架的接口
* 1、默认调用的是execute()方法
* */
public class LoginAction {
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() throws Exception{
System.out.println("execute is called");
System.out.println("execute is called" +username);
System.out.println("execute is called"+password);
if("admin".equals(username)&&"admin".equals(password)){
return "success";
}else{
return "error";
}
} }

这样存在不好的问题,action做好处理业务类,不要把bean对象的操作放在action中,我们可以采用ModelDriver驱动模式,让action集成ModelDriver来实现

我们新建立一个实体类User对象

package com.weiyuan.test;

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,需要实现ModelDriver接口

package com.weiyuan.test;

import com.opensymphony.xwork2.ModelDriven;

/**
* struct2的action可以不继承任何框架的接口
* 1、默认调用的是execute()方法
* */
public class LoginAction implements ModelDriven<User>{ private User user; public String execute() throws Exception{
System.out.println("execute is called");
if("admin".equals(getModel().getUsername())&&"admin".equals(getModel().getPassword())){
return "success";
}else{
return "error";
}
} @Override
public User getModel() {
// TODO Auto-generated method stub
if(user == null){
user = new User();
}
return user;
} }

这样就可以了

总结:

Struts2对ModelDriven模式的支持

Struts2可以采用类似于Struts1中的ActionForm方式收集数据,这样方式叫ModelDriven模式

如何实现模型驱动模式?
* 创建User
* Action需要实现ModelDriven接口

最新文章

  1. GLUT的简洁OO封装
  2. Jdk内置性能测试工具的介绍
  3. [EventBus源码解析] EventBus.post 方法详述
  4. Android 内存优化 (防Memory Leak)
  5. PHP-用ThinkPHP和Bootstrap实现用户登录设计
  6. PHP面向对象(一)
  7. 我的PHP之旅--SQL语句
  8. [Hapi.js] Request Validation with Joi
  9. google base之IncomingTaskQueue
  10. 内网服务器启动报错UNEXPECTED INCONSISTENCY解决方法
  11. Writing Science 7.10 (The Opening and The Funnel)
  12. install oracle 12c on redhat
  13. POI2014解题报告
  14. 矩阵游戏 HYSBZ - 1059(最大流)
  15. rtd1296 mtd 设备驱动分析
  16. C++ 类定义
  17. _lottery
  18. python抽象方法
  19. JS条件判断
  20. [VS2010搭建汇编开发环境win32和x64]

热门文章

  1. C# 委托浅析
  2. thymeleaf怎么在页面上面格式化时间
  3. Java实现 LeetCode 1162 地图分析(可以暴力或者动态规划的BFS)
  4. Java实现蓝桥杯勇者斗恶龙
  5. java中Condition类的详细介绍(详解)
  6. Java实现 洛谷 P1217 [USACO1.5]回文质数 Prime Palindromes
  7. opencl(2)平台、设备、上下文的获取与信息获取
  8. repo 导出本地 git tag 给他人
  9. Android开发项目中常用到的开源库
  10. 白嫖永久免费云服务器教程,永久免费虚拟主机、永久免费云数据库、搭建FTP服务器、服务器安装Linux / windows操作系统、服务器部署网站、宝塔一键部署多网站、独立ip、永久国内高速云服务器