`
zhaoyanfangeye
  • 浏览: 124851 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

WebService(cxf框架)返回一个包含有map的一个page对象

阅读更多
WebSercvie的接口,返回map方法的标注一个适配器(Adapter)
package com.gosophia.dataViewService.sei;

import java.util.List;
import java.util.Map;

import javax.jws.WebResult;
import javax.jws.WebService;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
import javax.xml.ws.WebServiceException;

import com.gosophia.commons.Page;
import com.gosophia.commons.SearchCondition;
import com.gosophia.dataViewService.sei.dto.ColumnTitleDTO;
import com.gosophia.dataViewService.sei.dto.MapAdapter;
import com.gosophia.dataViewService.sei.dto.SearchItemDTO;
@WebService(targetNamespace = MetadataWebServiceNameSpace.METADATA_WEBSERVICE_NAMESPACE)
public interface DataViewWebService {
    /**
     * 按照metaDataTableId 查询检索项信息
     * 
     * @param metadataTableId
     *            ,不能为空
     * @return {数据项页面显示名,数据类型,字段名或 查询Key}
     * @throws WebServiceException
     */
    @WebResult(name = "findSearchItemsByTableIdResult")
    public List<SearchItemDTO> findSearchItemsByTableId(Long metadataTableId)
            throws WebServiceException;

    /**
     * 按照metaDataTableId 查询列表标题
     * 
     * @param metadataTableId
     *            元数据表Id,不能为空
     * @return 列表标题
     * @throws WebServiceException
     */
    @WebResult(name = "findTableTitleResult")
    public String findTableTitle(Long metadataTableId)
            throws WebServiceException;

    /**
     * 按照metaDataTableId 查询列表各列展示信息 根据fieldDisplayType 字段显示顺序排序
     * 
     * @param metadataTableId
     *            元数据表Id,不能为空
     * @return 列表各列展示信息
     * @throws WebServiceException
     */
    @WebResult(name = "findColumnTitlesByTableIdResult")
    public List<ColumnTitleDTO> findColumnTitlesByTableId(Long metadataTableId)
            throws WebServiceException;

    /**
     * 全列模糊分页查询
     * 
     * @param metadataTableId
     *            表id,不能为空
     * @param orderbyStr
     *            排序字段实体属性名
     * @param orderbyFlg
     *            升/降序标记:DESC,降序;ASC,升序
     * @param pageSize
     *            每页行数
     * @param pageNo
     *            当前页码
     * @param searchCondition
     *            查询值
     * @return 业务数据及分页信息
     * @throws WebServiceException
     */
    @WebResult(name = "findDataListSimpleResult")
    @XmlJavaTypeAdapter(MapAdapter.class)
    public Page<Map<String,String>> findDataListSimple(Long metadataTableId,
            String orderbyStr, String orderbyFlg, int pageSize, int pageNo,
            String searchCondition) throws WebServiceException;

    /**
     * 多条件分页查询
     * 
     * @param metadataTableId
     *            表id,不能为空
     * @param orderbyStr
     *            排序字段实体属性名
     * @param orderbyFlg
     *            升/降序标记:DESC,降序;ASC,升序
     * @param pageSize
     *            每页行数
     * @param pageNo
     *            当前页码
     * @param searchCondition
     *            查询条件对象,可变长数组
     * @return 业务数据及分页信息
     * @throws WebServiceException
     */
    @WebResult(name = "findDataListResult")
    @XmlJavaTypeAdapter(MapAdapter.class)
    public Page<Map<String, String>> findDataList(Long metadataTableId, String orderbyStr,
            String orderbyFlg, int pageSize, int pageNo,
            SearchCondition... searchCondition) throws WebServiceException;
}


//适配器的实现
package com.gosophia.dataViewService.sei.dto;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.xml.bind.annotation.adapters.XmlAdapter;

import com.gosophia.commons.Page;

/**
 * 
 * 配置一个拦截器,将查询数据转换成Map格式返回过来
 * 
 * @创建日期 2010-6-4
 * 
 * @版本 V1.0
 */
public class MapAdapter extends
        XmlAdapter<MapPair, Page<Map<String, String>>> {
    @Override
    public MapPair marshal(Page<Map<String, String>> v)
            throws Exception {
        MapPair page = new MapPair();
        ArrayList<MapPair.Entry[]> pageRult = new ArrayList<MapPair.Entry[]>();
        for (Map<String, String> map : v.getResult()) {
            MapPair.Entry[] object = new MapPair.Entry[map.size()];
            int i = 0;
            for (Map.Entry<String, String> entry : map.entrySet()) {
                MapPair.Entry mapDtoEntry = new MapPair.Entry();
                mapDtoEntry.setKey(entry.getKey());
                mapDtoEntry.setValue(entry.getValue());
                object[i] = mapDtoEntry;
                i++;
            }
            pageRult.add(object);
        }
        page.setResult(pageRult);
        page.setPageNo(v.getPageNo());
        page.setPageSize(v.getPageSize());
        page.setTotalCount(v.getTotalCount());
        return page;
    }

    @Override
    public Page<Map<String, String>> unmarshal(MapPair v) throws Exception {
        Page<Map<String, String>> page = new Page<Map<String, String>>();
        ArrayList<Map<String, String>> lists = new ArrayList<Map<String, String>>();
        Map<String, String> map = null;
        for (MapPair.Entry[] list : v.getResult()) {
            map = new HashMap<String, String>();
            for (MapPair.Entry mapEny : list) {
                map.put(mapEny.getKey(), String.valueOf(mapEny.getValue()));
            }
            lists.add(map);
        }
        page.setResult(lists);
        page.setPageNo(v.getPageNo());
        page.setPageSize(v.getPageSize());
        page.setTotalCount(v.getTotalCount());
        return page;
    }

}
//MapPair对象
package com.gosophia.dataViewService.sei.dto;

import java.io.Serializable;
import java.util.ArrayList;


import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlType;

@XmlType(name = "MapPair")
@XmlAccessorType(XmlAccessType.FIELD)
public class MapPair implements Serializable{

    private static final long serialVersionUID = 1L;
    private ArrayList<Entry[]> result;
    protected int pageNo = 1;
    protected int pageSize = 1;
    protected long totalCount = -1;
    
    
    public static class Entry{
        private String key;
        private String value;
        /**
         * @return the key
         */
        public String getKey() {
            return key;
        }

        /**
         * @param key
         *            the key to set
         */
        public void setKey(String key) {
            this.key = key;
        }

        /**
         * @return the value
         */
        public Object getValue() {
            return value;
        }

        /**
         * @param value
         *            the value to set
         */
        public void setValue(Object value) {
            this.value = String.valueOf(value);
        }
    }
    /**
     * @return the result
     */
    public ArrayList<Entry[]> getResult() {
        return result;
    }
    /**
     * @param result the result to set
     */
    public void setResult(ArrayList<Entry[]> result) {
        this.result = result;
    }
    /**
     * @return the pageNo
     */
    public int getPageNo() {
        return pageNo;
    }
    /**
     * @param pageNo the pageNo to set
     */
    public void setPageNo(int pageNo) {
        this.pageNo = pageNo;
    }
    /**
     * @return the pageSize
     */
    public int getPageSize() {
        return pageSize;
    }
    /**
     * @param pageSize the pageSize to set
     */
    public void setPageSize(int pageSize) {
        this.pageSize = pageSize;
    }
    
    /**
     * 取得总记录数, 默认值为-1.
     */
    public long getTotalCount() {
        return totalCount;
    }

    /**
     * 设置总记录数.
     */
    public void setTotalCount(final long totalCount) {
        this.totalCount = totalCount;
    }
}

分享到:
评论
1 楼 风雨故都 2013-10-22  
Page 里面有什么属性

相关推荐

    WebService CXF 对象传递 附

    在Web服务领域,CXF是一个非常重要的开源框架,它允许开发者创建和消费各种Web服务。CXF支持SOAP、RESTful等多种通信模式,并且能够处理复杂的对象传递,使得Web服务的数据交换更加灵活。本文将深入探讨如何在CXF中...

    CXF框架发布webservice

    2. **创建服务接口**:定义一个Java接口,该接口包含你想要发布的Web服务操作。这些方法将成为Web服务的端点。 3. **实现服务类**:为定义的服务接口提供具体实现。在实现类中,你可以编写业务逻辑代码。 4. **...

    webservice cxf_demo

    【描述】"cxf写的一个helloworld demo" 指出,此项目的核心是展示如何通过Apache CXF框架实现基础功能。"Hello World"程序通常被用作教学工具,帮助开发者理解新语言或框架的基本工作原理。在这个特定的场景中,我们...

    SpringBoot+Mybatis+CXF框架,实现Restful api与 WebService api接口的大实验

    CXF是一个基于Apache的开源WebService框架,提供了丰富的WebService开发功能。 5. Mybatis:在本实验中,我们使用Mybatis来实现数据库操作。Mybatis是一个基于Java的持久层框架,提供了丰富的数据库操作功能。 6. ...

    WebService CXF 详细教程

    Apache CXF是一个开源的Java框架,用于构建和部署WebServices。CXF不仅支持SOAP,还支持RESTful风格的服务。它提供了丰富的功能,包括WS-*协议栈支持、客户端和服务端的生成工具、多种传输方式(HTTP、JMS等)、以及...

    webService的CXF框架jar包

    WebService的CXF框架是一个广泛使用的开源项目,用于构建和消费Web服务。它提供了一种简单且强大的方式来实现基于SOAP(Simple Object Access Protocol)和RESTful(Representational State Transfer)风格的Web服务...

    webservice cxf spring整合返回list,bean,string,json,xml项目完整实例

    【描述】:本项目旨在展示如何在Java企业级应用(Java EE)中,通过Apache CXF框架创建Web服务,并结合Spring框架进行管理,从而能够灵活地返回不同类型的数据,包括List、自定义Bean对象、纯文本String以及常见的...

    webService(基于cxf)的完整例子

    CXF是一个流行的开源Java框架,用于构建和消费Web服务。它提供了丰富的功能,包括SOAP、RESTful API支持以及多种协议和标准的实现。在这个基于CXF的Web服务完整例子中,我们将深入探讨CXF的核心概念、配置、以及如何...

    C#动态调用CXF WEBSERVICE框架的共通类

    C#动态调用CXF WEBSERVICE框架共通类。

    webservice cxf.jar 相关包

    在Java世界中,Apache CXF是一个强大的Web服务框架,用于构建和消费Web服务。CXF允许开发者通过SOAP、RESTful、XML以及HTTP等方式来创建和使用Web服务。 标题中的“cxf.jar”指的是Apache CXF的核心库文件,它是...

    webservice cxf集成servlet

    - **项目命名**:首先,在开发环境中创建一个新的Web项目,并将其命名为`cxf_bigdata`。 ##### 2. 目录结构 - 项目的目录结构应该包括以下几个主要部分: - `WEB-INF` - `classes` - 包含POJO类、接口和服务实现...

    webservice的cxf框架拦截器demo

    总的来说,"webservice的cxf框架拦截器demo"是一个很好的实践示例,它展示了如何在CXF中利用拦截器增强Web服务的功能。通过理解并应用这些拦截器,开发者能够更好地控制服务的交互过程,提升系统的可扩展性和灵活性...

    webservice的cxf框架拦截器demo.rar

    【描述】:本压缩包“webservice的cxf框架拦截器demo.rar”提供了一个关于如何在Apache CXF框架下实现Web服务拦截器的实际操作示例。CXF是一个开源的服务框架,它允许开发者创建和部署多种类型的Web服务,包括SOAP和...

    cxf框架的webservice,传递json,xml

    CXF框架是Apache组织开发的一款开源服务开发框架,主要用于构建和开发Web服务。它支持SOAP、RESTful等多种服务风格,并且能够处理XML和JSON等多种数据格式。本篇将深入探讨如何在CXF框架中实现WebService,特别是...

    webservice天气预报例子cxf实例

    在本例中,“webservice天气预报例子cxf实例”指的是使用Apache CXF框架实现的一个天气预报相关的Web服务示例。 Apache CXF是一个开源框架,它为开发和部署Web服务提供了全面的支持。CXF允许开发者通过Java编程模型...

    mybatis+spring+cxf Webservice框架

    【标题】"mybatis+spring+cxf Webservice框架"是一个集成性的开发框架,它结合了三个主流的技术组件:MyBatis、Spring和Apache CXF,用于构建高效、灵活且易于维护的Web服务。MyBatis是一个优秀的持久层框架,Spring...

    SpringBoot框架及CXF发布WebService

    Apache CXF是一个开源服务框架,它允许开发者构建和部署Web服务。CXF支持多种协议,如SOAP、RESTful、WS-*等,并且与Spring框架有很好的集成。 1. **服务器端Web服务发布**:CXF允许开发者通过JAX-WS或JAX-RS接口...

    webservice的cxf框架客户端调用所需jar包

    2. `xmlbeans-2.6.0.jar`: XMLBeans是一个用于Java的XML处理库,它可以将XML文档映射为Java对象,反之亦然。在CXF中,XMLBeans用于解析和生成XML文档,支持SOAP消息的处理。 3. `bcprov-jdk15on-1.59.jar`: 这是...

    WebService CXF学习文档

    做开发时,查了大量资料,发现一比较全面的资料,分享一下!...WebService CXF学习——高级篇(一)(二) 1.整合Spring框架 2.CXF+Spring+Hibernate 3.WS-Security WebService CXF学习——JAXB剖析

    Java webservice cxf客户端调用demo和服务端

    CXF是一个开源框架,它简化了创建和使用Web服务的过程,支持WS-I(Web Services Interoperability)规范,确保跨平台和跨语言的互操作性。 首先,让我们深入理解CXF的核心概念。CXF允许开发者使用Java编程模型来...

Global site tag (gtag.js) - Google Analytics