专栏首页Jerry的SAP技术分享Smart template的控件能否当成普通控件来用

Smart template的控件能否当成普通控件来用

我的同事问过我这个问题:

只要弄清楚Smart control的原理,就能回答这个问题。

答案是: smart control可以像普通的控件一样在xml view中被定义和使用,但是必须结合OData annotation,否则没有意义。以Smart control里的Smart field为例,详细原理在我的博客Currency example – how Smart field works里介绍。

概括起来,就是:

1. Smart field本身也是一个控件,更准确的说是一个没有UI输出的控件,只是一个壳。在UI render的时候,smart field会演变成input field,还是drop down list,还是date picker,还是F4 help,这些都需要有一个角色来告诉smart field,这个角色就是Odata annotation。Metadata里定义的annotation会决定smart field最后的输出方式。

2. Smart control可以脱离Smart template框架单独使用。也就是说您可以创建一个很简单的xml view,然后在这个view里像使用普通控件那样使用smart control,没有任何问题。

请参考这个例子(完整实现代码在文末):

在XML view里,我定义了一个Smart field,绑到Price这个property上。

在runtime时,它会自动被渲染成带单位的currency field。后面那个EUR的currency field就像变戏法一样生成了,其实就是sap:unit=”CurrencyCode”这个annotation起的作用。至于框架是如何解析annotation并自动生成currency field,相关的代码和分析都在上述提到的博客Currency example – how Smart field works里。

该Fiori应用的目录结构:

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 基于springboot的ssm简单框架

    搭建一个简单的基于springboot的ssm(spring + springmvc + mybatis)的maven项目,使用的数据库为mysql。

    foochane
  • springboot结合MyBatis中使用foreach

    在pom.xml中自行加入需要的依赖,application.properties的配置如下

    道可道非常道
  • Spring Boot中的application.yml怎么用

    在yml之前使用最多的配置文件形式是xml和properties文件。xml文件太过繁琐,看过的人都知道,想要新加一个配置节点的话还需要包含在<>标签里;而pr...

    我的小熊不见了丶
  • 简单的 CAS 实现 SSO 单点登录

    解压缩 cas-4.1.8.zip 并进入 cas-server-webapp 目录,在当前目录打开 cmd 并执行安装命令。

    好好学java
  • Spring Boot从入门到精通-初识注解、rest接口

    首先在启动类同级目录下新建controller目录,在controller目录中新建java类:DemoController.java

    我的小熊不见了丶
  • 再说一下微信支付踩到的坑 mch_id 参数格式错误

    微信小程序支付在好久之前写过一次,后来再写的话也是用别人的 SDK 了,之前写的文章好像留了一点坑

    沈唁
  • Spring Boot从入门到精通-注解详解

    -Documented:Documented注解表明这个注释是由 javadoc记录的。 以上是三个公共注解,基本上所有的注解都会继承这三个注解。

    我的小熊不见了丶
  • Hadoop的安装和使用

    后面加入export JAVA_HOME=/usr/lib/jvm/default-java 然后使环境变量生效:

    foochane
  • 调用链监控 CAT 之 入门

    CAT 是一个实时和接近全量的监控系统,它侧重于对Java应用的监控,基本接入了美团上海所有核心应用。目前在中间件(MVC、RPC、数据库、缓存等)框架中得到广...

    程序员果果
  • 如何在Windows系统上使用Object Detection API训练自己的数据?

    之前写了一篇如何在windows系统上安装Tensorflow Object Detection API?

    小小詹同学

扫码关注云+社区

领取腾讯云代金券