模型驱动二 | 学习笔记

简介: 快速学习模型驱动二,介绍了模型驱动二系统机制, 以及在实际应用过程中如何使用。

开发者学堂课程【Java Web开发系列课程 - Struts2框架入门模型驱动二】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/537/detail/7300


模型驱动二

 

ModelDriven,首先表单的数据改成 regDriven,不需要对象的名字,直接拿对象的属性,把 Action 改成 Driven。

写一个 UserDrivenAction,跟刚刚的 action 不一样了,刚刚是 Java 的一个普通的类,现在实现 ModelDriven 的一个接口,里面有一个类型。如果想要从页面表单上提供对象的类型,需要写出来,写 user,方法叫 getmodel,getmodel 需要返回指定的对象。

在 Action 中写上获取对象的属性,对象是为空的,Struts2把它注入进来,使用ModelDriven 进行开发,把这个对象直接创建出来。把这个对象给 get user,可以把user 输出来看一下,直接拷贝,这些不改变,直接拿过来。

当然如果页面上需要显示的话,也需要用 get set 的方法。在页面上把 user 显示出来,配置一下。

结果成功后,尝试跑一下。然后访问 regDriven,把年龄,邮箱写上,提交,把数据获取到。

说明 jsp 页面中获取数据时只需要把对象写上,不需要把 user 加上去,通过ModelDriven 方式在 Action 将表达的数据写进来,比刚刚的属性写的页面稍微少一些。

Action 都提供一些接口,具有侵入性。建议在某个对象的类写的特别多的时候,使用ModelDriven 进行开发,页面可以少写一些代码。

实现 ModelDriven 的方法,里面有一个拦截器。Struts2里面的核心内容都是通过拦截器来实现的,把 ModelDriven 带入,把值注入到 action 里,通过拦截器实现。

拦截器主要的方法是 intercept,首先获取要执行目标的 action,And do an action 是否属于 ModelDriven 的这样的一个接口类型,如果不是的话 直接往下走了,只有是这个类型 才会继续往下执行。

Action 中通过 ModelDriven 实现 ModelDriven Intercept 功能的话,这个 action 必须要实现 ModelDriven 这样的一个接口,因为只有属于这样的借口的话 在这个地方判断的话,他才会属于 ModelDriven 这样的类型,接着才会把值设置进来。

UserDriven Action 里面实现了一个getModel方法,本质是在 ModelDrivenintercept里面调用的方法,如果这个方法和这个 getModel 不等于空的时候,才会把值放进,做一些处理。如果等于空,是不会做这样的事情的。

需要把对象创建出来,和属性驱动不太一样的地方。因为属性驱动是由 Struts2来传的,而 ModelDriven 对象是由自己创建的。struts2会将页面的表单数据设置到对应的类型数据上去,这是使用 ModelDriven 进行开发。

Jsp 代码

不需要把 User 加上,属性名称不用加上去。

<form action="regDriven. action" method="post">

用户名:<input type="text"name="name"/><br>

密码:<input type=""name="pwd"/><br>

年龄:<input type="text"name="age"/><br>

邮箱:<input type="text"name="email"/><br>

<input type="submit"value=提交”/>

</form>

Action 代码

关注实现接口,还有 getModel。

public class UserDrivenAction implements Model Driven< User>

private User user =new User()

/注册

public String register(

System.out. printIn(user);

return Action. SUCCESS:

}

public User getModel(){

return user;

}

public User getUser(){

return user;

}

public void setUser(User user){

this.user =user;

}

}

实体类代码

public class User {

private String name;

private String pwd;

private int age;

private String email;

public String getName(){

return name;

}

public void setName(String name)}

this. name= name

}

public String getPwd(){

return pwd;

}

public void setPwd(String pwd){

this. pwd= pwd;

}

public int getAge()

return age;

}

public void setAge(int age){

this.age =age;

}

注意表单数据和这个是一样的,属性名称变化,比刚刚简单,配置是一样的,几乎没有什么变化。

Struts.xml 配置

Struts xml 配

<package names"user" extends="struts-default">

<action name="register"class="cn. sxt. action. UserAction

method="register">

<result name="success">show.jsps/result>

</action>

<action name="regDriven"

class="cn. sxt. action. UserDrivenAction"method="

register">

<result>name="success">/show. isps/result>

</action>

</package>

实际应用开发中,选择属性应用开发还是模型驱动开发,建议在实体类属性比较多时,采用模型驱动进行开发。


相关文章
|
7天前
|
前端开发 JavaScript API
探索JAMstack架构:现代Web开发的新范式
【10月更文挑战第28天】JAMstack架构是一种现代Web开发方法,以其高性能、高安全性和易于维护的特点受到开发者青睐。本文深入探讨了JAMstack的核心概念、优势、工具链及其如何改变Web开发方式,包括静态网站生成、API驱动和预渲染等关键技术。
|
15天前
|
前端开发 JavaScript 安全
探索 JAMstack 架构:现代Web开发的新范式
【10月更文挑战第20天】JAMstack(JavaScript、APIs、Markup)架构是一种现代Web开发方法,通过预构建静态页面、动态功能通过APIs实现和依赖JavaScript,提供高性能、安全和可扩展的Web开发新范式。本文深入探讨其核心理念、优势、工具和最佳实践,帮助开发者理解和应用JAMstack。
|
4月前
|
敏捷开发 Java 测试技术
「架构」模型驱动架构设计方法及其运用
本文探讨了MDA在软件开发中的应用,从需求分析到测试,使用UML建模功能需求,通过PIM设计架构,自动生成代码以减少错误。MDA提升了可维护性、可扩展性和可移植性,通过工具如Enterprise Architect和Eclipse MDT支持自动化转换。虽然有挑战,如模型创建和平台转换,但结合敏捷方法和适当工具能有效解决,从而提高开发效率和软件质量。
496 0
「架构」模型驱动架构设计方法及其运用
|
6月前
|
前端开发 数据可视化 搜索推荐
数据驱动的前端设计与开发实践
本文将介绍如何在前端设计与开发中充分利用数据驱动的方法,通过数据分析、用户行为追踪和可视化等手段,指导前端界面设计和功能开发,提高用户体验和产品质量。
|
算法 C++
软件开发入门教程网之C++ 数据抽象
软件开发入门教程网之C++ 数据抽象
|
缓存 自然语言处理 前端开发
【自然语言编程实践】GPT4 企业级在线商城开发 01-数据模型设计 下
【自然语言编程实践】GPT4 企业级在线商城开发 01-数据模型设计
109 0
|
敏捷开发 自然语言处理 前端开发
【自然语言编程实践】GPT4 企业级在线商城开发 01-数据模型设计 上
【自然语言编程实践】GPT4 企业级在线商城开发 01-数据模型设计
123 0
|
设计模式 开发框架 前端开发
手把手教你封装一个健壮的MVP框架,面向接口开发。
在我们的日常开发中,我们都知道 Android 端的开发框架有 MVC,MVP,MVVM,说起这几个框架,大家也肯定都有自己的看法,甚至很多同学也都封装过。
96 0
|
监控 负载均衡 Dubbo
框架设计|学习笔记
快速学习框架设计
框架设计|学习笔记
下一篇
无影云桌面