这个JSP将显示用户的姓名域中的信息—通过访问一个对行为本身的引用来实现。为此,Stripes自动地包括了一个actionBean请求属性,这可以使用JSTL加以存取。最后,我们使用一个stripes:link标签来创建一个到HelloWorldAction类的往回的链接,以便我们可以输入另一个不同的名字。我们还能够像下面这样通过显式地引用index事件来创建该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过滤器的缺省配置:
|
当启动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,stripes或action)连接成全称限定类名。在我们的示例中,我们在包名中使用了这四个匹配中的三个。没有使用此匹配的一个是“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类 |
| /example/HelloWorld.action | com.myco.web.stripes.action.example.HelloWorldAction |
接下来,我们要讨论的第二个问题是,Stripes怎么把URL绑定翻译回你要使用的ActionBean类呢?这个任务由Stripes调度器(dispatcher)Servlet来完成—此调度器在web.xml文件中配置,如下所示:
|
| 共4页: 上一页 [1] [2] 3 [4] 下一页 | ||
|
|
||||
| · ARP攻击防范与解决方案 · NAC安全访问控制 · 网络布线测试仪器 · Windows Server 2008专.. · Windows远程桌面应用 · 网络故障排除宝典 · 运营商封堵ADSL共享 中.. · 解析35岁技术人的价值.. |
· 世纪枭雄比尔盖茨的王.. · 主流品牌防火墙配置 · ASP.NET开发教程 · 超级计算机TOP500专题 · Vista SP1对决XP SP3 · SQL Server 2008/2005.. · 程序员如何成长? · C#技术开发指南 |
|||
|
||||
| · SOA 面向服务架构 · SQL Server 2008/2005.. · Apache技术专题 · 三层交换技术专题 · SQL Server入门到精通 · Windows远程桌面应用 · C#技术开发指南 · Apache技术专题 |
· Windows集群服务应用 · C#技术开发指南 · 国际文档格式标准开战 · 路由器设置与口令恢复 · Linux 集群技术专题 · PHP开发应用手册 · SOA 面向服务架构 · 企业数据恢复指南 |
|||
|
||||
| · SQL Server入门到精通 · SQL Server 2008/2005.. · SOA 面向服务架构 · Apache技术专题 · C#技术开发指南 · 三层交换技术专题 · Apache技术专题 · C#技术开发指南 |
· Windows远程桌面应用 · 企业数据恢复指南 · Windows集群服务应用 · 路由器设置与口令恢复 · Linux 集群技术专题 · SOA 面向服务架构 · 了解统一威胁管理(UTM).. · 反垃圾邮件技术应用 |
|||