永州网,内容丰富有趣,生活中的好帮手!
永州网 > 推荐 > 正文

使用Stripes框架实现高效的Java Web开发

时间:2024-01-31

本书首先介绍了Stripes框架的基本概念和特性,然后深入讨论了如何在Java环境下利用Stripes来实现各种Web开发任务,包括处理表单提交、数据验证、页面导航等

友情提示:本文共有 4582 个字,阅读大概需要 10 分钟。

《利用Stripes实现Java+Web开发》是一本针对Java开发者的实用指南,探讨了如何利用Stripes框架来快速搭建Web应用程序。本书首先介绍了Stripes框架的基本概念和特性,然后深入讨论了如何在Java环境下利用Stripes来实现各种Web开发任务,包括处理表单提交、数据验证、页面导航等。作者还分享了大量实际案例和最佳实践,帮助读者更好地理解和应用Stripes框架。无论是刚入门的Java开发者还是有一定经验的开发者都可以从本书中获得宝贵的经验和知识。

今天给大家分享的是由小编精心为您推荐的利用Stripes实现Java Web开发,喜欢的朋友可以分享一下,也算是给小编一份支持,大家都不容易啊!

Stripes是一个以让程序员的web开发简单而高效为准则来设计的基于动作的开源Javaweb框架。本文将介绍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

{

[email protected](

{

[email protected](field = "firstName", required = true, on = {"hello"}),

[email protected](field = "age", required = true, minvalue = 13, on = {"hello"})

})

private Person person;

private ActionBeanContext context;

[email protected]public Resolution index()

{

return new ForwardResolution("Hello.jsp");

}

public Resolution hello()

{

return new ForwardResolution("SayHello.jsp");

}

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

public String getPerson() { return person;}

public void setContext(ActionBeanContext c) { = 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来对其进行持久化。

Person对象变量上有一个Stripes验证annotation用来保证用户在激活hello方法的时候已经输入了姓名。假如用户没有输入这两个必需的变量,原始页会被返回,并显示一个相关的错误消息。该验证只有在hello事件被申请的时候才会被激活,因为annotation的属性中指定了(on = {"hello"})。Stripes还会使用实用默认法则,根据验证方法和变量名称产生一个错误信息。例如,假如Person类的firstName变量在提交的时候没有提供,用户将看到:

Person First Name is a required field.

这条消息是通过将进行刻读化处理后得到的。假如有必要,这些错误消息可以被重载来提供更多的客户自定义功能。

另外还有一个Integer类型的变量age,是Person对象的一个属性。Stripes首先试图对request中命为的转换为类型,并将其捆绑到对象上。在对象的变量被付值以后,将验证该值是否小于。假如用户输入了一个字符串而非整数,用户得到这个消息:

The value (Mark) entered in field Person Age must be a valid number.

若是用户输入了一个小于13的整数,用户将看到这个消息:

The minimum allowed value for Age is 13.

同样地,我们没有必要为这些错误消息提供任何外部的配置文件。Annotation提供的验证与你的变量在同一个位置上,使得程序员定位验证、理解验证的内容、和对验证进行维护变动更轻易。

这个Stripes动作还有两个可被激活的方法(称为事件)。事件是ActionBean类中有如下特征的方法:

public Resolution eventName

[email protected]annotation。因为在本动作中有多个事件,其中一个必须被指定为默认事件。假如调用本动作的URL没有指定哪个事件,[email protected]annotation的事件,并执行。

显示层(View)

现在让我们给Hello World例程加上显示层的逻辑。Stripes默认支持JSP为显示层的标准技术,不过你也可以用其他的显示层技术,比如FreeMaker。除了Stripes的tag库以外,没有什么新的东西要学。是初始的显示,可以让用户输入和提交姓名。

<%@ taglib prefix="stripes" uri="" %>

......

<>

< beanclass="com. myco. web. stripes. action. example. HelloWorldAction"> Say hello to: <br> First name:

< name=""> <br> Age:< name=""><>

< name="hello" value="Say Hello"/>

</>

......

这个JSP易读易维护。而Stripes用于form和input的tag跟对应的Html代码非常相似。 tag包含一个beanclass属性,其值为我们前面定义的controller类的完整类名。我们可以用中的action属性来替换beanclass属性,但是beanclass属性可以让你在以后对Stripes动作进行重构的时候更加方便。假如你要用在 tag中使用action属性,方法如下:

< action="/example/">

有一个 tag指定了一个名为person.firstName属性,其作用是将其储存的输入值付给controller的Person对象的firstName变量中。最后, tag指定一个name属性来告诉Stripes的HelloWorldAction类使用哪一个事件。

我们现在已经完成了提交姓名的值给HelloWorldAction,剩下的就是在另一个view中将其反馈给用户了。

<%@ taglib prefix="stripes" uri="" %>

......

<>

<h2>Hello ${} your age is ${} </h2> <p/>

< beanclass=". "> Say Hello Again

</>

......

本JSP将自己通过一个对动作的引用读取person的姓名信息并显示。为达到这一目的,Stripes自动在request的属性中添加一个名为actionBean动作对象,以供JSTL存取。最后,我们用了一个 tag来建立一个返回HelloWorldAction地链接从而可以让我们输入不同的姓名。我们以可以通过如下办法显式地创建一个指向index事件的:

< beanclass=". " event="index">

Say Hello Again

</>

[email protected]ultHandler,Stripes无须event属性也知道要执行哪一个方法。

用约定、不用配置文件

我们现在有了Java组件,我们该做配置了,把动作映射的一个URL上,并将其连接到我们的两个view上面去。等一下!我们在用Stripes,我们不需要外部配置文件!

虽然这听来似乎好得不像是真的,但这的确是Stripes的一项最具生产效率的功能。Stripes使用约定而非配置文件来映射动作到URL上。我们也无须使用一个外部配置文件来把view映射到一个个标记名字上。这意味着程序员不用再为了一个标记名字——比方说SUCCESS——的实际

收集不易,本文《使用Stripes框架实现高效的Java Web开发》知识如果对你有帮助,请点赞收藏并留下你的评论。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。
显示评论内容(2)
  1. honghuff2024-01-31 20:24honghuff[国外网友]203.34.39.129
    @十二世灬非雾我也是使用Stripes框架的,觉得它的简洁性和灵活性很棒,完全符合现代开发需求。
    顶0踩0
  2. 十二世灬非雾2024-01-31 20:02十二世灬非雾[甘肃省网友]203.25.175.193
    Stripes框架的确很适合快速开发,让Java+Web开发变得更加高效。
    顶9踩0
相关阅读
门式刚架错层框架钢结构的分析与设计:顶层构型下的研究

门式刚架错层框架钢结构的分析与设计:顶层构型下的研究

关键词:门式刚架;多层框架钢结构;错层一、引言随着钢结构在国内建筑行业中的`应用越来越广泛,一种顶层为轻型屋面的刚架,以下楼层为多层钢框架结构的房屋形式使用越来越多

2024-01-21 #头条

探索人生态度:跳出框架 创造美好未来

探索人生态度:跳出框架 创造美好未来

人生态度话题作文在漫漫的人生之路上,每个人都会经历挫折

2024-01-09 #知识

探秘安徽工程大学计算机科学与技术考研之路

探秘安徽工程大学计算机科学与技术考研之路

内容涵盖考研准备的时间规划、复习方法、备考心态等方面的经验分享,将围绕如何高效备考、应对考试压力等问题展开深入讨论

2024-01-28 #头条

Vue.js 实战之路: 从零开始的项目实践

Vue.js 实战之路: 从零开始的项目实践

该书主要介绍了如何利用vue.js框架构建实际项目,包括项目的设计、开发、测试和部署等方面的内容

2024-01-27 #推荐

英特尔物联网大动作:从芯片到边缘再到AI 驱动智能变革

英特尔物联网大动作:从芯片到边缘再到AI 驱动智能变革

英特尔以其强大的芯片技术和丰富的经验,致力于打造更智能、更高效的物联网生态系统

2024-01-31 #生活

华为鸿蒙OS正式发布:纯血鸿蒙对标iOS

华为鸿蒙OS正式发布:纯血鸿蒙对标iOS

据 Counterpoint 数据,截止今年一季度,中国市场鸿蒙 OS 已经拿下 8% 的市场份额,安卓拿下 72% 份额,苹果 iOS 份额为 20%

2023-12-04 #头条

探索单于的含义 以及如何在造句中使用

探索单于的含义 以及如何在造句中使用

单于的解释及造句: dan yu:chányú匈奴君主的称号。单于造句:1、所以应该是呼韩邪单于。2、汉赵国宗室诸王、司隶校尉、内史与单于、左右辅、都尉系统相配合,构成其军事...

2024-01-14 #随笔

米芾的多景楼诗册:险不怪老不朽 稳不俗润不肥

米芾的多景楼诗册:险不怪老不朽 稳不俗润不肥

湖北襄阳人,时人号海岳外史,又号鬻熊后人、火正后人

2024-01-24 #随笔

上合组织国家职工技能交流营在山东探索技能合作之路

上合组织国家职工技能交流营在山东探索技能合作之路

此次职工技能交流营,共有来自18个上合组织国家的27名代表参加

2024-01-27 #百科