频道直达:新闻 - 组网 - 安全 - 服务器 - 存储 - 系统 - 应用 - 开发 - 数据库 - 前沿 - 技术人 - 培训 - 求职 - 读书 - 教程 - 专题 - 产品 - 案例 - 技术圈 - 博客 - BBS
51CTO.COM_中国领先的IT技术网站
找资料:

基于Stripes框架进行Java Web开发(3)

作者: Mark Eagle/朱先忠编译 出处:51CTO.com 2007-03-23 18:36    砖    好    评论   进入论坛
阅读提示:Stripes框架是一个新型Java web 2.0开发框架,与JSF等新型框架可形成比较(类似于STRUTS之于SPRING)。本文是一篇简单案例分析文章,通过一个具体例子来分析新型Stripes Web开发框架如何区别于其它框架而形成自己的优势。

这个JSP将显示用户的姓名域中的信息—通过访问一个对行为本身的引用来实现。为此,Stripes自动地包括了一个actionBean请求属性,这可以使用JSTL加以存取。最后,我们使用一个stripes:link标签来创建一个到HelloWorldAction类的往回的链接,以便我们可以输入另一个不同的名字。我们还能够像下面这样通过显式地引用index事件来创建该stripes:link标签:

<stripes:link
beanclass="com.myco.web.stripes.action.
example.HelloWorldAction"
event="index">Say Hello Again</stripes:link>

既然我们已经使用@DefaultHandler注解了该index方法,所以,Stripes能够知道要执行哪个方法—即使不使用事件属性。

四、使用convention(约定)进行配置

现在,既然我们已经成功地创建了我们的Java组件,那么接下来,我们将把行为映射配置到一个URL,并且把它链接到我们以前创建的两个视图上。请等一下—我们是在使用Stripes框架进行开发,所以在此我们根本不需要任何外部配置!

尽管这听起来可能有点不太真实,但的确如此—这正是Stripes框架带给我们的最具生产效率的众多特征之一。在配置问题上,Stripes使用convention把Action映射到URL。我们也不需要使用一个外部配置文件来把一个符号名映射到实际的视图上。这意味着,开发者不必在配置文件之间来回切换以决定如何在众多的符号名(例如SUCCESS)中加以选择并最终把它们导航到视图的实际路径。根本不需要通过外部来配置Java和视图组件。显然,这提高了系统开发的可维护性,并进一步提高了软件生产效率。

那么,在没有以外部方式配置每一个行为或另一个注解的情况下,Stripes是如何提供到Java行为类的隐式的URL映射呢?这可以通过在web.xml文件中配置Stripes和该文件使用智能的缺省设置来创建URL映射方面得到解释。首先,我们需要讨论一个称为StripesFilter的Servlet过滤器。下面是在web.xml文件中的StripesFilter过滤器的缺省配置:

<filter>
<display-name>Stripes Filter</display-name>
<filter-name>StripesFilter</filter-name>
<filter-class>
net.sourceforge.stripes.controller.StripesFilter
</filter-class>
<init-param>
<param-name>ActionResolver.UrlFilters</param-name>
<param-value>/WEB-INF/classes</param-value>
</init-param>
</filter>

当启动Servlet容器时,StripesFilter执行其init-param元素的初始化。其中,最重要的一个init-param元素是ActionResolver.UrlFilters参数。这个参数告诉Stripes到哪里寻找Stripes相关的类。在本文示例中,Stripes将在缺省的/WEB-INF/classes路径下查找所有实现了ActionBean接口的类。所找到的每一个ActionBean类,连同该类缺省的绑定URL,都被添加到一个映射中。

现在,让我们通过一个示例来实际分析一下Stripes对我们的Hello世界示例类做了些什么。既然该HelloWorldAction类位于/WEB-INF/classes路径下并且实现了ActionBean,那么,它将被识别为一个Stripes servlet。在我们的示例中,该类的全称限定名为com.myco.web.stripes.action.example.HelloWorldAction。然后,这个全称限定的名字通过实现下面这些规则被翻译成一个URL绑定:

1.把每次出现的四个子串之一(www,web,stripesaction)连接成全称限定类名。在我们的示例中,我们在包名中使用了这四个匹配中的三个。没有使用此匹配的一个是“example.HelloWorldAction”。
2.从类名的最后删除字符串“Action”和“Bean”—如果它们存在的话。于是,这产生了“example.HelloWorld”,因为我们的类以“Action”结束。
3.现在,我们使用“/”符号代替“.”符号,结果是“example/HelloWorld"”。
4.最后,我们在结尾添加上绑定后缀(默认情况下是“.action”),至此最终完成URL绑定。最终结果是“example/HelloWorld.action”。

现在,既然Stripes已经找到了ActionBean类并且为它创建了一个URL绑定,那么,接下来将对它们通过java.util.Map>(其中,键是URL绑定,而值为实现ActionBean的类)进行缓冲。下面是我们的示例在映射中看起来的样子:

URL绑定 ActionBean
/example/HelloWorld.action com.myco.web.stripes.action.example.HelloWorldAction

接下来,我们要讨论的第二个问题是,Stripes怎么把URL绑定翻译回你要使用的ActionBean类呢?这个任务由Stripes调度器(dispatcher)Servlet来完成—此调度器在web.xml文件中配置,如下所示:

<servlet>
<servlet-name>StripesDispatcher</servlet-name>
<servlet-class>
net.sourceforge.stripes.controller.DispatcherServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>StripesDispatcher</servlet-name>
<url-pattern>*.action</url-pattern>
</servlet-mapping>


共4页: 上一页 [1] [2] 3 [4] 下一页
【内容导航】
关于 Stripes  Web  框架  Java
专题
企业Web安全威胁在线评估系统
Java实用开发全集
开源框架Eclipse发展历程
Java类的基础教程专题
Java发展动态专题
我也说两句

匿名发表

(如果看不清请点击图片进行更换)


中 国 领 先 的 IT 技 术 网 站 ·
技 术 成 就 梦 想
·Java基础教程 (查看81120次)
·UML类图详解 (查看72587次)
·C++是垃圾语言?! (查看42719次)
·C#技术开发指南 (查看40290次)
·UML统一建模语言 (查看39225次)
·Java编程开发手册 (1198个砖)
·Java基础教程 (431个砖)
·C#技术开发指南 (311个砖)
·.NET开发手册 (254个砖)
·PB开发教程 (223个砖)
·Java编程开发手册 (658个好)
·Java基础教程 (578个好)
·.NET开发手册 (282个好)
·PB开发教程 (213个好)
·Delphi开发技术手册 (200个好)
订阅技术快讯
电子杂志下载
名称:SQL Server数据库管理精品黄皮书
简介:书中文章经过精挑细选,便于用户能根据自己的实际工作和学习,快速在本书寻找到相关资料。内容涵盖了SQL Server的安装与升级、语句查询、数据备份和恢复、自动化任务、数据同步、数据字典、安全和预防、性能和优化、集群等各方面应用信息,以及DBA管理人员在数据库管理工作中
名称:2007路由技术大全
简介:《2007路由技术大全》由51CTO.com网站特别策划制作,该书包括路由器技术、路由器产品、路由器配置、安全设置、路由器故障处理、路由器密码恢复,以及广大网友在实践使用中的心得经验和技巧文章,内容注重实用性,适用于初学者入门,也适合多年从业者提高,是一本实践和理论完
名称:网络安全精品应用黄皮书
简介:《2007精品网络安全黄皮书》包括了9个大类24个小类, 800余篇文章,内容包含了熊猫烧香病毒、DDOS攻击、ARP病等热点问题的介绍及解决方案。从病毒查杀、防范、系统、数据等各方面的安全设置到黑客技术的了解、防范,涉及到了安全应用的全部领域, 由浅至深内容全面。