`
apusiczhang
  • 浏览: 16918 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

OperaMasks 2.0特性之一:约定优于配置

阅读更多

在本系列教程中,我们将通过一个小例子:Calculator,来体会一下Apusic OperaMasks 2.0的特性。

 

本文中,将围绕的例子如下图所示:

 

 

现在,就让我们开始体验一下Apusic OperaMasks 2.0的神奇。

 

 

首先,让我们打开Apusic Studio,先画出这样一个页面:

 

 

这个页面的代码如下:

 

<f:view xmlns="http://www.w3.org/1999/xhtml" xmlns:f="http://java.sun.com/jsf/core"
  xmlns:w="http://www.apusic.com/jsf/widget" xmlns:layout="http://www.apusic.com/jsf/layout"
  renderKitId="AJAX" xmlns:h="http://java.sun.com/jsf/html">
  <w:page title="Calculator">
    <w:form id="calc">
      <layout:panelGrid columns="3">
        <h:outputLabel for="first"/>
        <w:textField id="first"/>
        <h:message for="first"/>
        <h:outputLabel for="second"/>
        <w:textField id="second"/>
        <h:message for="second"/>
        <h:outputLabel for="result"/>
        <h:outputText id="result"/>
      </layout:panelGrid>
      <br/>
      <layout:panelGrid columns="4">
        <w:button id="add"/>
        <w:button id="subtract"/>
        <w:button id="multiply"/>
        <w:button id="divide"/>
      </layout:panelGrid>
    </w:form>
  </w:page>
</f:view>

 

此页面的解释:在页面的上半部分,放了两个<w:textField>,其id分别是“first”及“second”,还有一个 <h:outputText>,其id为“result”,页面下半部分放了四个<w:button>,其id分别是“add”、“subtract”、“multiply”及“divide”。OK,我们现在来运行一下这个页面,效果如下:

 

 

和我们的预期差不多。下面,让我们来做一下后台的Lite Bean(在AOM 2.0中,将Managed Bean扩展成Lite Bean,详细资料请参考AOM 2.0参考手册),如果你用的是Apusic Studio,那么,在你新建这个页面的时候,这个Lite Bean已经自动帮助你生成了。

 

 

这个LiteBean的基本代码如下:

 

@ManagedBean(scope = ManagedBeanScope.REQUEST)
public class CalcBean {
  @Bind
  private double first = 22.0;
  @Bind
  private double second = 7.0;
  @Bind
  private double result;
  @Action
  public void add() {
    result = first + second;
  }
  @Action
  public void subtract() {
    result = first - second;
  }
  @Action
  public void multiply() {
    result = first * second;
  }
  @Action
  public void divide() {
    result = first / second;
  }
} 

 

上述代码的解释如下:首先,我们声明了3个成员变量,分别是:first、second和result,请注意,他们的命名,和页面中相关控件的id是一样的,并且,它们都有一个@Bind 的annotation。同时,我们也声明了四个方法,分别是:add、subtract、multiply和divide,同样的,它们的命名也和页面中的四个<w:button>的id保持一致,而且,它们也都有@Action 的annotation声明。

 

现在,让我们运行一下这个页面,我们来看看,会发生什么情况?

 

 

哇,一切都OK了!我们要的功能已经全部具备了!

 

这是怎么回事?印象中,我们好像并没有指定输入参数的label是什么吧,好像也没有指定四个button的value和action啊,AOM是怎么猜到我们想要让它做什么的?

 

 

分享到:
评论
9 楼 vieri122 2008-04-08  
可惜你们的AOM不支持HIBERNATE 而且文档确实少了点!
8 楼 jamesqiu 2008-04-07  
views层用的xml过于怪异。
采用用grails的html+tag(有逻辑),或者干脆wicket更纯净的html(无逻辑),会更让人觉得舒服。
7 楼 jamesqiu 2008-04-07  
用时间,弄弄grails和wicket,更值
6 楼 Saro 2008-04-05  
也许是很神奇,但这么多陌生的标签真让人头晕呀。我还是喜欢比较纯粹的html代码....
5 楼 hax 2008-04-02  
又来了,打着“约定优于配置”的旗号。他们真正理解“约定优于配置”的含义了吗?

我其实不想来吹毛求疵。AOM能做出来还是不错的,但是老往自己身上贴金,就露怯了。
4 楼 plutluo 2008-04-02  
大家都写过这样的代码,在类中声明一个成员变量:private int i;那么,大家知道,这里i的值是0;为什么是大家“都”知道呢,这种情况就类似一种约定。
约定优于配置,view层没有指定value,这样由服务器为其填充,这也是符合IoVC原则的,后端对view层具备控制力的表现。
3 楼 wlf 2008-04-01  
不错,与潮流同步
2 楼 allenny 2008-04-01  
为啥后面要加个s?
1 楼 wdmzl1976 2008-04-01  
不错,有点意思。

相关推荐

    operamasks-ui-2.0.zip

    《深入理解OperaMasks UI 2.0:前端框架与应用实践》 OperaMasks UI 2.0是一款由金蝶公司推出的高效、易用的前端界面库,它旨在为开发者提供一套完整的用户界面解决方案,以提升Web应用程序的用户体验和开发效率。...

    operamasks-ui-2.0-doc

    "Operamasks UI 2.0 Doc"是一个针对 Operamasks 用户界面的开发文档,它提供了详尽的指导和信息,帮助开发者理解和构建基于Operamasks的Web应用程序。这个离线版文档对于开发者来说尤其珍贵,因为在线寻找这类资源...

    operamasks2.0M2

    operamasks的作用手册

    operamasks-ui-2.0

    operamasks-ui-2.0 这个帮助文档很难才找到的,感谢CSDN,其中的说明真的是很详细了,维护旧代码用到的这个框架,相比easyui和bootstrap这个框架简单一些,不过用起来还是不错的,除了文档太少,不过有这个就基本...

    operamasks-ui-2.0-demo.zip

    "Operamasks UI 2.0 Demo"是一个与JavaScript相关的压缩包,包含了对Opera Masks用户界面新版本的演示。这个项目可能是一个Web应用程序框架或库,专为开发人员设计,以便在Opera浏览器或其他支持JavaScript的环境中...

    operamasks-ui-2.0-demo--.zip

    "Operamasks UI 2.0 Demo" 是一个专门针对Opera浏览器的扩展或应用界面设计的开发套件,主要用于创建和定制用户界面。这个压缩包文件 "operamasks-ui-2.0-demo--.zip" 包含了用于演示和实践如何使用Opera Masks UI ...

    OperaMasks快速进阶

    OperaMasks2.0提供了两种绑定方式:通过WEB-INF/operamasks.xml配置文件或&lt;om:useBean&gt;标签。通过配置文件可以实现业务模型引用的完全消除,并且支持模式匹配,增强了灵活性。 **2.1. 为页面绑定LiteBean** 在...

    operamasks-ui 帮助文档

    只是我在网上找的 operamasks-ui api 文档 , 希望对你们有帮助

    operaMasks_studio应用手册

    作为一款专门为JSF量身打造的开发工具,operaMasks_studio凭借其强大的功能和易用性,大大提升了开发效率,是进行JSF项目开发的理想选择之一。无论是初学者还是经验丰富的开发者,都能从中受益匪浅。

    operamasks-ui-master.zip

    【标题】"operamasks-ui-master.zip" 是一个包含了 OperaMasks UI 2.0 框架的源代码压缩包。这个框架是基于前端开发的,尤其适用于构建企业级的 Web 应用程序,其设计目标是提高开发效率,提供良好的用户体验。...

    operamasks安装包

    .options.jar文件可能包含了这些配置项的保存和读取机制,允许用户根据个人喜好定制OperaMasks的使用体验。 4. **operamasks-api.jar**:这个文件是OperaMasks对外提供的API接口集合。开发者可能通过这个接口让其他...

    operamasks-sdk_3.2

    Operamasks SDK 3.2 是金蝶中间件公司推出的一款重要的软件开发工具包,专为开发者设计,旨在简化与金蝶产品集成的过程,提高开发效率,并增强应用程序的功能。这个版本的SDK着重于提升性能、稳定性和用户体验,...

    operamasks开发的程序连接mysql数据库

    本示例介绍了如何使用OperaMasks框架(可能是Apusic应用服务器的一部分)来开发Java程序,实现与MySQL数据库的连接。以下是详细的知识点解析: 1. **OperaMasks与Apusic**: OperaMasks可能是一个基于Apusic应用...

    operamasks-ui-2.1-demo

    "Operamasks UI 2.1 Demo"是一个专注于前端用户界面的项目,主要基于流行的开源浏览器扩展框架——OperaMasks。这个项目的目的是提供一个演示版本,让用户和开发者能够体验和理解OperaMasks UI 2.1版本的功能和设计...

    operamasks-ui

    "Operamasks-UI" 是一个专为Opera浏览器设计的用户界面增强插件的源代码包,其版本为1.2,存储在一个名为"operamasks-ui-1.2.zip"的压缩文件中。这个插件的目标是提供更加个性化、高效且易用的浏览体验。在了解这个...

    operamasks官方jsf教程

    **OperaMasks** 是一个专为Opera浏览器设计的JSF组件库,它扩展了JSF的功能,使得在Opera中使用JSF应用更加顺畅。 **教程概述:** "operamasks官方jsf教程"是针对初学者的一个资源,旨在介绍如何使用JSF和...

Global site tag (gtag.js) - Google Analytics