Stripes是一个以让程序员的web开发简单而高效为准则来设计的基于动作的开源Java web框架。本文将介绍Stripes与其它如Struts之类基于动作的框架的区别和其提供的一些存在于Ruby on Rails之中的简单性。

Stripes是一个以让程序员的web开发简单而高效为准则来设计的基于动作的开源Java web框架。传统的Java web开发着眼于借去耦(Decoupling)来实现其灵活性,但导致多个的配置文件,额外的对象,和其他资源的分散。这些困难造成相当多的程序员的更高的学习时间和低下的效率。其结果是有些Java程序员被一些非Java的框架所吸引去了:Ruby on Rails或者Django。一些Java web框架,如Stripes,正在开始从这些非Java框架中汲取其成功经验:简单而高效的开发。本文将介绍Stripes与其它如Struts之类基于动作的框架的区别和其提供的一些存在于Ruby on Rails之中的简单性。

图1是典型的用Stripes写的应用程序中的正常事件流程和组件。

图 1 典型Stripes流程

如你所见,其流程基本上就是一个MVC框架。Stripes和其他的基于动作的框架的一个主要的区别是没有一个外部的配置文件。我们随后将看到,Stripes用annotation和约定而非配置来提高产出和减少杂乱。

编写你的第一个Stripe动作(Action)

让我们现在就开始通过创建Hello World例程来了解Stripes框架和理解其运作。HelloWorldAction类将提示用户输入姓氏和名字然后在另一个View里面显示,首先我们来编写controller类。

public class HelloWorldAction implements ActionBean

{

@ValidateNestedProperties(

{

@Validate(field = "firstName", required = true, on = {"hello"}),

@Validate(field = "age", required = true, minvalue = 13, on = {"hello"})

})

private Person person;

private ActionBeanContext context;

@DefaultHandler public Resolution index()

{

return new ForwardResolution("Hello.jsp");

}

public Resolution hello()

{

return new ForwardResolution("SayHello.jsp");

}

public void setPerson(String person) {this.person = person;}

public String getPerson() { return person;}

public void setContext(ActionBeanContext c) {this.context = c; }

public ActionBeanContext getContext() {return context; }}

Controller类是一个实现了Stripes特有接口ActionBean的POJO(Plain Old Java Object,译注:读破粥)。所有的Stripes动作类都要实现这一接口以让StripesDispatcher servlet在运行服务时为其注入一个ActionBeanContext对象。ActionBeanContext对象可以让你存取的对象如request、response、和servlet context等servlet API。大多数时候在Stripes应用中是不用读取这些底层API对象的。

ActionBeanContext类还提供当前动作的状态并可以添加信息消息和错误消息到当前动作中。ActionBeanContext的变量和其读写方法可以放在一个基类里面,因为所有的Stripes动作都要实现之。

Controller类的其他部分对于任何Java程序员来说都是很面熟的。有一个Person对象和其读写方法是用来读写用户的姓名给view的。虽然这仅仅是一个简单的嵌套对象,Stripes可以通过Java集合、泛型支持、和下标化的属性来实现更复杂完善的数据捆绑。因为Stripes可以处理复杂数据捆绑,你的领域对象(Domain Object)可以在其他需要它们的层重用。例如:通过Stripes你可以很容易的收集一个领域对象的信息,然后用其他的POJO框架,如Hibernate或者EJB3来对其进行持久化。

利用Stripes实现JavaWeb开发.doc

下载Word文档到电脑,方便收藏和打印[全文共1506字]

编辑推荐:

下载Word文档

stripes java,利用Stripes实现JavaWeb开发相关推荐

  1. jetty java web_i-jetty 下的JavaWeb开发(一)

    最近需要将android端作为服务器进行开发,让android作为服务器,现阶段技术并不是很成熟,主要的服务器有i-jetty,是基于PC端的jetty的移植.i-jetty同tomcat类似,也是S ...

  2. 利用Stripes实现Java Web开发

    Stripes是一个以让程序员的web开发简单而高效为准则来设计的基于动作的开源Java web框架.本文将介绍Stripes与其它如Struts之类基于动作的框架的区别和其提供的一些存在于Ruby ...

  3. java web国外 研究现状_国外javaWeb开发技术.doc

    国外javaWeb开发技术.doc 外java Web开发技术 MVC结构模式是XeroxPARC在20世纪80年代为编程语言Smalltalk-80 发明的一种软件设计模式. 缑艳阳认为MVC将应用 ...

  4. 最详细的JavaWeb开发基础之java环境搭建(Windows版)

    首先欢迎大家来学习JavaWeb,在这里会给你比较详细的教程,从最基本的开始,循序渐进的深入.会让初学者的你少踩很多坑(大实话),如果你已经掌握了JavaWeb开发的基础部分,请耐心等待后续的进阶阶段 ...

  5. java alsa 编程_搭建JavaWeb开发环境

    更好的阅读体验欢迎访问博客搭建JavaWeb开发环境 前言 在服务器上搭建javaweb开发环境,特此记录 一.安装JDK 查看默认JDK java -version rpm -qa|grep jav ...

  6. JDBC , 使用java来控制mysql。JavaWeb开发的分层设计-三层架:DAO层设计,连接池使用,类加载使用,配置...

    大家可以关注一下我的博客  我的博客所有随笔都是我从基础开始学习java的所有知识点 1. Jdbc概述 问题:实际开发中,不可能用工具或者命令行操作数据库,数据库表中的数据最终要使用Java程序来操 ...

  7. java web开发技术大_2021年六大javaweb开发主流技术

    作为历史最为悠久的编程语言--java,历经数十年依然盘踞在编程榜最前面的位置,这与它的技术和应用范围是分不开的,同时呢,javaweb开发主流技术更是java开发者时时刻刻关注的问题,接下来我们一起 ...

  8. java泛型dao,泛型DAO模式在JavaWeb开发中的应用_孟晨.pdf

    泛型DAO模式在JavaWeb开发中的应用_孟晨 29 1 Vol. 29 No. 1 第 卷第 期 计算机应用与软件 20 12 1 Computer Applications and Softwa ...

  9. JavaWeb开发基础:连接数据库的demo和数据库连接工具类DB.java

    JavaWeb开发基础:连接数据库的demo和数据库连接工具类DB.java import javax.servlet.*; import javax.servlet.http.*; import j ...

最新文章

  1. GDCM:gdcm::String的测试程序
  2. 【Java】jdk 1.8 新特性——Lambda表达式
  3. testlink(以及服务器)问题定位思路
  4. 如何不起协议,R1ping通R3
  5. 将应用程序11M内存占用,降至500K左右
  6. 完美实现Android ListView中的TextView的跑马灯效果
  7. Dubbo中多注册中心问题与服务分组
  8. Windows 10 64位系统中安装加密狗驱动出现the returncode is 3003错误的解决方法
  9. html audio解决浏览器无法播放问题
  10. python xlwt修改excel_通过Python模块xlwt更改xls文件中的默认分页符
  11. pcre c语言,pcre函数详细解析
  12. 定制MACD背离副图
  13. thrift文件服务器,Thrift功能和使用
  14. 编写电话号码查询系统
  15. 编写ESM风格的nodejs应用
  16. sda、sdb、sda1、sda2的意思
  17. 使用restTemplate上传图片
  18. 手把手教你搭建网盘系统,给小姐姐换个新家可好​?
  19. 南京理工计算机科学与技术怎样,南京理工大学计算机科学与技术学院
  20. 怎样复制虾米音乐html,来支招:怎样把虾米歌单导入网易云音乐

热门文章

  1. 9月7日云栖精选夜读:ApsaraDB for HBase性能/延时全面领先社区版本
  2. 广告拦截器:不要与他们战斗; 了解他们
  3. 高效 准确地鉴别出入站的恶意流量
  4. TypeError:__init__() missing 1 required positional argument :‘problem‘
  5. android中的热更新
  6. 【前端用法】jQuery在线引用地址(全)
  7. Google Book Search APIs——谷歌图书搜索API
  8. 《现代电力电子学与交流传动》读书笔记(八)
  9. 3、Pull解析、SQLite、单元测试、ListView
  10. RocketMQ 安装详细说明