金现代实习,UAP学习笔记

UAP学习笔记

 

 

(1)   通过Studio提供的编辑器修改工作空间中模块项目的页面资源文件(包括jsp、js、css、html、tld等),可以立即生效,刷新浏览器就能看到效果。但是,新增、删除、覆盖文件,或者通过Studio之外的编辑器修改这些文件,例如:通过Windows的画图工具或者Photoshop修改图片文件,上述这些修改不能直接生效,需要使用updm命令才能生效。【注:不能直接更新扩展模块,要通过更新主模块来更新扩展模块。】

(2)   Rest是一种URI风格,是一组架构约束条件和原则,是一种针对网络应用的设计和开发方式,可以降低开发的复杂性,提高系统的可伸缩性。REST风格应用可以实现交互,但它却天然的具有服务器无状态的特征。在状态迁移的过程中,服务器不需要记录任何Session,所有的状态都通过Url的形式记录在了前端。更准确的说,这里的无状态服务器,是指服务器不保存会话状态,而资源本身则是天然状态,通常是需要被保存的。在UAP中前后端交互采用rest风格的服务暴露形式。

(3)   REST提出了一些设计概念和准则:

网络上的所有事物都被抽象为资源(resource);

.每个资源对应一个唯一的资源标识(resourceidentifier);

通过通用的连接器接口(generic connector interface)对资源进行操作;

对资源的各种操作不会改变资源标识;

所有的操作都是无状态的(stateless)。

 

(4)   注解

a)    @Controller注解将一个类标明为用来接收HTTP请求控制器

b)    @RequestMapping注解将特定的URL和具体的控制器类或控制类类中的方法绑定

c)     添加@PathVariable注解,可以直接在方法中使用请求URI中的值。

例如:@RequestMapping("/{id}")

    public@ItemResponseBody

    QueryResultObjectquery(@PathVariable String id) {

       returnlineBizc.queryById(id);

    }

(5)   控制层使用的注解

a)    @ColumnRequestParam:参数注解。请求体是{columns:[“id”, “name”]}的形式,指明方法的参数是从请求体中获取的字符串数组。用于在获取元数据信息时,从请求体获取显示的列,并将列名封装为字符串数组。

例如: 请求参数为params={“columns”:[“id”,”name”,”sex”]},返回数据为:String[]{“id”,”name”,”sex”}

使用示例:

@RequestMapping(“/meta”)

     Public @ColumnResponseBody List<ViewAttributeData>getMetaData(  @ColumnRequestParam(“params”) String[] columns) {

。。。。。。

}

b)    @ColumnResponseBody:

     作用:方法体注解,对返回值进行拦截。

     拦截List类型的返回值,将返回值解析为JSON格式字符串,如:

     {“columns”:[{“name”:”id”,”caption”:”编号”,”length”:32},{},{},…]}

     com.sgcc.uap.rest.annotation. ColumnResponseBody

     响应体是{columns:[{},{},{}……]}的形式,指明将方法返回值转化为JSON格式列信息 ,

     将返回的对象转换为json串。

     返回对象为ViewAttributeData,

     返回数据格式为:  

     {“columns”:[{“name”:”id”,”caption”:”ID”,nullable:false,dataType:”string”},...]}

c)     @IdRequestBody:

     作用:参数注解。

     拦截请求体为{params:{primaryKey : “EMP_ID” ,  ids:[“001”, “002”,……] }}格式的数据,将此数据转换为字符串数组。如                    

                 [“0001”,”0002”]。

     com.sgcc.uap.rest.annotation. IdRequestBody

     指明方法的参数是从请求体中获取的字符串数组,并将主键信息封装为IDRequestObject对象。通过getPrimarykey()和getIds()取出主键名称和主键值

     例如:用于删除操作从请求体中获取主键

      Public @VoidResponseBody Object delete(@IdRequestBody IDRequestObjectid){

。。。。。。

}

d)     @ItemsRequestBody:

        作用:参数注解。

        拦截请求体的数据格式:

        {“items”:[{“id”:”01”,”name”:”n1”},{},{},…]}和{“parentID”:”0003329281”, “items”:[{“id”:”01”,”name”:”n1”},{},{},…]}

        将数据转化为List<Map>格式,list中map封装一个item数据

        使用示例:用于保存场景,将请求体中的记录封装为到list中。

 public@ItemResponseBody List<SchoolVO> saveSchool(@ItemsRequestBodyList<Map> list) {

。。。。。

}

e)    @ItemsResponseBody:

      作用:方法体注解。

      拦截返回数据。将返回的list集合转化为json字符串。

                 {“items”:[{“id”:”01”,”name”:”n1”},{},{},…] ,itemCount:100}

      com.sgcc.uap.rest.annotation. ItemResponseBody

      拦截返回数据。将返回的list集合转化为json字符串。指明返回值将以 

      {items:[{}{}{}{}]}的形式返回。使用示例:

public @ItemResponseBodyQueryResultObject query(@QueryRequestParam(“params”) RequestCondition params){

   。。。。。。。。。。

}

f)     @QueryRequestParam:

       作用:参数注解。

       com.sgcc.uap.rest.annotation.QueryRequestParam

       GET请求中从url中通过指定KEY值将参数取出,用于查询条件。    

       QueryRequestParam(“params”),将url中的{ “params”:{“filter”:”name   ='eqe'&sex='female'“,”orderStr”:”age”,”columns”:”id,name,age,sex”} }转换为RequestCondition对象。使用实例:

       public @ItemResponseBody

  QueryResultObjectquery(@QueryRequestParam(“params”) RequestCondition     

       params)

g)    @TreeResponseBody:

       作用:方法体注解。

       拦截返回值List<TreeNode>,将list集合转换为json字符串。

              {“node”:[{“id”:”01”,”text”:”root”,”hasChild”:true},{},{}…] }

       com.sgcc.uap.rest.annotation.TreeResponseBody

        返回树节点,该注解将节点信息的list集合转换为如下json格式:  

{“nodes”:[{“id”:”001”,”text”:”dddd”,”hasChild”:true,”itemType”:”department”,”imgUrl”:null}]}

       使用示例:获取节点信息的方法。

       public@TreeResponseBody

       List<TreeNode>getNodes(@PathVariable String id,

                @ItemRequestParam(“params”) String itemType) {

                     。。。。。。

       }

h)    @RawResponseBody:

     作用:方法体注解。

     拦截返回值,对于字符串类型的返回值可以原样输出。

     对于List或对象类型的返回值转换为响应的json字符串输出。方便用户封装自定义的格式。

     com.sgcc.uap.rest.annotation.RawResponseBody

     指明方法的返回值应当以原生返回值的形式,绑定到响应体中 ,使用该注解的方法应当返回object。

     使用示例:将方法中返回的字符串原样输出,用于自己拼装返回的格式,不用平台的json转换。

     public@RawResponseBody Object test(){

                return “welcome!”;

     }

     示例中的方法将字符串”welcome!”原样返回。

i)      @VoidResponseBody:

      作用:将空返回值包装为通用的返回格式。

      com.sgcc.uap.rest.annotation.VoidResponseBody

      用于没有特定返回值得方法注解,将对象转换为统一的json串。如:

      {

                “successful”:true,   ————方法是否调用成功

                “resultHint”:”“,      ————异常信息

                “resultValue”:       ““    ————数据信息是空的

      }

      例如:删除操作

      public@VoidResponseBody

        Object delete(@IdRequestBodyIDRequestObject id) {

                       。。。。

      }

 


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值