您所在的位置: 首页>>开发>>JAVA>>

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

http://developer.51cto.com  2007-03-23 18:36  Mark Eagle/朱先忠编译  51CTO.com  我要评论(0)
  • 摘要:Stripes框架是一个新型Java web 2.0开发框架,与JSF等新型框架可形成比较(类似于STRUTS之于SPRING)。本文是一篇简单案例分析文章,通过一个具体例子来分析新型Stripes Web开发框架如何区别于其它框架而形成自己的优势。
  • 标签:Stripes  Web  框架  Java

还有一个称为age的整型(integer)域,这是Person对象的一个属性。Stripes将根据请求参数值首先针对Person.age整数域执行类型转换,并绑定Person对象中的相应值。在把该值绑定到Person对象的age域上后,Stripes将进行校验以保证该Integer值小于13。如果用户输入了一个字符串而不是一个整数,那么该用户将看到如下的这条消息:

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

如果用户输入了一个整数但是该值小于13,那么用户将看到这条消息:

The minimum allowed value for Age is 13.

在此,我们仍然不需要对于这些错误消息提供任何外部配置。提供这一校验功能的注解是内联于你的域的,这使得开发者能够容易地定位校验,理解校验将会怎样发生,以及对该校验进行维护性修改。

在这个Stripes行为中,还存在两个可以调用的方法(称为“事件”)。一个事件是通过一个ActionBean类中的一个方法使用下列签名形式加以描述的:

public Resolution eventName

注意,相应的index方法被加上了@DefaultHandler注解标记。因为在这个行为中存在多个事件,所以需要把它们其中之一指定为缺省的事件。如果调用这个行为的URL没有指定一个事件,那么Stripes将查找一个标记有@DefaultHandler注解的事件并执行它。

三、构建视图

现在,让我们在“Hello World”示例中添加我们的视图逻辑部分。默认情况下,Stripes支持JSP作为标准视图技术,然而,你还可以使用其它视图技术—例如FreeMarker。在此,基本没有什么要介绍的新内容—除了Stripes标签库外。初始的视图,称为Hello.jsp,允许用户输入并提交他们的名字。

<%@ taglib prefix="stripes"
uri="http://stripes.sourceforge.net/stripes.tld" %>
<html>
<head>
<title>Stripes Hello World</title>
</head>
<body>
<stripes:errors/>
<stripes:form
beanclass="com.
myco.
web.
stripes.
action.
example.
HelloWorldAction">
Say hello to: <br>
First name: <stripes:text name="person.firstName"/>
<br>
Age:<stripes:text name="person.age"/><br>
<stripes:submit name="hello" value="Say Hello"/>
</stripes:form>
</body>
</html>

这个JSP相当简单—只负责读取和维护。其中表单及输入域中使用的Stripes标签非常类似于它们的HTML对应物。其中,stripes:form标签包含一个称为beanclass的属性—这是我们以前定义的控制器类的全称限定名。我们可以使用beanclass属性来代替该stripes:form标签中的action属性。然而,如果你需要重构一个Stripes行为的话,使用beanclass属性将会更为容易些。下面是如果你使用action属性的话,该stripes:form标签看起来的样子:

<stripes:form action="/example/HelloWorld.action">

其中,一个stripes:input标签用于指定Person.firstName的一个name属性—它将用于把输入域存储到控制器中的Person对象的firstName域的值中。最后,stripes:submit标签用于指定一个name属性—该属性将用于指示Stripes HelloWorldAction类使用hello事件。

现在,我们开始把姓名值提交到HelloWorldAction。为此,我们仅需要将它回显于一个单独的视图中。

<%@ taglib prefix="stripes"
uri="http://stripes.sourceforge.net/stripes.tld" %>
<html>
<body>
<stripes:errors/>
<h2>Hello ${actionBean.person.firstName} your age is
${actionBean.person.age} </h2>
<p/>
<stripes:link beanclass="com.myco.web.stripes.action.
example.HelloWorldAction">
Say Hello Again
</stripes:link>
</body>
</html>


共4页: 上一页 [1] 2 [3] [4] 下一页
【内容导航】
企业级Web2.0 你准备好了么?
WebSphere 实现SOA的利器
Web安全云时代
企业Web安全威胁在线评估系统
Java实用开发全集
 
 验证码: (点击刷新验证码)   匿名发表
  • Visual C++ 完全自学宝典

  • 作者:强锋科技,朱洪波
  • Visual C++ 6.0是微软公司为程序人员提供的Visual Studio 6.0工具套件中的重要组成部分。本书由浅入深地介绍使用Visual C++ 6.0..
Copyright©2005-2008 51CTO.COM 版权所有