科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道用Stripes做Java Web开发

用Stripes做Java Web开发

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

摘要: Stripes是一个以让程序员的web开发简单而高效为准则来设计的基于动作的开源Java web框架。

作者:中国IT实验室 来源:中国IT实验室 2007年9月30日

关键字:

  • 评论
  • 分享微博
  • 分享邮件

在本页阅读全文(共4页)



    Ajax

    要不要更高级的功能?那我们就来看看Stripes是怎么处理Ajax的。我们将把先前的Hello World例程改成使用Ajax调用Stripes动作。本例子的源代码可以在本文资源中找到。首先,我们对Hello.jsp作改动使其引用Prototype JavaScript函数库。我们还要为Ajax调用增加一个JavaScript函数,并更改提交按钮为其添加一个onclick事件:

<%@ taglib prefix="stripes" 
            uri="http://stripes.sourceforge.net/stripes.tld" %>
......
    <script
        src="${pageContext.request.contextPath}/js/prototype.js"
        type="text/javascript"></script>

    <script type="text/javascript">
       function sayHelloAjax() {
          var myAjax = new Ajax.Updater('hello',
          "<stripes:url
               beanclass="com.
                          myco.
                          web.
                          stripes.
                          action.
                          example.
                          HelloWorldAction"
               event="sayHelloAjax"/>",
          {
              method: 'get',
              parameters: Form.serialize('helloForm')
          });
        }
    </script>
......
    <stripes:errors/>
    <stripes:form
        beanclass="com.
                   myco.
                   web.
                   stripes.
                   action.
                   example.
                   HelloWorldAction"
        id="helloForm">
        Say hello to: <br>
        First name: <stripes:text
                          name="person.firstName"/><br>

        Age:<stripes:text name="person.age"/><br>

        <stripes:button
                name="helloAjax"
                value="Say Hello"
                onclick="sayHelloAjax()"/>

        <div id="hello"></div>

    </stripes:form>
......



    stripes:button有一个onclick事件将会调用HelloWorldAction类中的sayHelloAjax方法并将其结果返回在一个叫hello的div tag中。下面是我们要在HelloWorldAction中介绍的一个新方法:


public Resolution sayHelloAjax(){
  return new ForwardResolution("SayHelloAjax.jsp");  
}



    这个方法没有多少工作,因为Stripes已经承担了姓名内容的绑定。因此,本方法唯一的责任就是转发到一个叫SayHelloAjax.jsp的页面片断上去。该叶面片段的内容如下:
        

<h2>Hello ${actionBean.person.firstName} your age is ${actionBean.person.age}!</h2>



    Spring整合

    Stripes还内置了对Spring支持。你可以自动地将Spring bean诸如到你的动作中。按照Stripes的风格,除了Spring上下文配置文件以外不需要任何外部配置文件。如果我们Spring的配置文件如下:

<bean id="personService" parent="abstractTxDefinition">
  <property name="target">
    <bean class="com.myco.service.impl.PersonServiceImpl"/>
  </property>
</bean>



    要把person服务注入到一个Stripes动作中,得增加一个跟Spring bean的名字一致的属性和setter。Stripes提供了@SpringBean annotation来查询正确的Spring bean以注入到动作之中。下面是我们要在动作类中包含的例子:

private PersonService personService;

@SpringBean
public void setBlogService(BlogService blogService) {
  this.blogService = blogService;
}



    本文无法囊括Stripes的所有高级功能。但是,Stripes有非常完整的文档。Stripes还包含了一个与Tiles类似但无需外部配置文件的layout管理器。另外,拦截器还可以用于生命周期事件的各处、文件上载等等等等。

    结论

    Stripes是一个既强大又简单的Java web框架。Stripes利用了Java 5的annotation和泛型功能,从而使得Java程序员避免维护外部配置文件并增加工作效率。Stripes可以简化困难的web开发工作,并使得简单的工作更加简单!

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章