Sharepoint java sdk_Sharepoint 2007 Sdk常用基础操作

本文档介绍了如何使用Sharepoint 2007的Java SDK进行基本操作,包括SPSite的构造和属性,如AllWebs、RootWeb和OpenWeb函数的使用。示例代码展示了如何获取网站集、遍历网站、打开特定网站以及SPWeb对象的相关属性和方法。此外,还提到了SPWeb对象的成员变量,如AllUsers、Lists、Permissions等,以及如何进行文件、列表和用户组的操作。文章强调了合理使用try-catch语句以及对象模型中Update方法的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SPSite的使用

SPSite作为网站集对应的对象模型,其主要的用处是获取某个特定的网站,它最常用的几个功能如下:

„构造函数

SPSite的构造函数有两种,分别以Site的url和Guid作为参数。

在SharePoint对象模型中,大部分对象都拥有一个Guid作为它唯一的标识符,通过这个Guid可以获取该对象的实例,例如Site(SPSite)、Web(SPWeb)、列表(SPList)、视图(SPView)以及SPS中的区域(Area)、门户列表(AreaListing)等。但也有一些是采用整型作为标识符的,例如列表项(SPListItem)、角色(SPRole)和用户(SPUser)等。

„AllWebs属性

该属性是一个SPWebCollection类型的变量,通过这个属性,便可以获取到该网站集中的所有网站,包括一个顶级网站和它下面的所有子网站。然后通过以下三种形式之一,便可以得到某个特定的SPWeb的对象:

·webs[int index]:根据在该集合中的下标获取一个Web;

·webs[string url]:根据Web的相对url(相对于包含该网站的Site)获取Web;

·webs[Guid guid]:根据唯一标识该Web的guid获取。

在WSS对象模型中,集合(Collection)是一个比较重要的概念,它实际上是一种对象的存储方式(即.NET框架中集合的概念)。一般来说SPxxxCollection便是SPxxx这个类所对应的集合类,例如SPWebCollection、SPListCollection和SPFileCollection等。但是应该注意到的是,SPSiteCollection并不是包含在Microsoft.SharePoint命名空间中的类,而是在Microsoft.SharePoint.Administration这一命名空间中的,这也说明了Site的主要意义在于网站本身的管理,而非网站内容的管理。

„RootWeb属性

该属性是一个SPWeb类型的变量,它所对应的对象是该网站集中的顶级网站,通过它可以逐步获得该网站级中的层级结构。(关于顶级网站和子网站的概念,请参考本书中“2.1.2Windows SharePoint站点架构简介”部分。)

„OpenWeb函数

该函数返回一个SPWeb类型的变量,通过该函数可以获得该网站集中一个特定的网站。它有以下三种使用形式:

·OpenWeb():在命令行模式中,该方法返回网站级中的顶级网站对象;但是在网络环境中使用该方法会有不同的效果,详见第11章11.3小节“WebPart编程中的对象模型”;

·OpenWeb(Guid guid):返回该guid所对应的网站对象;

·OpenWeb(string url):返回该url所对应的网站对象,注意该url为相对地址(相对于服务器根路径或者网站集根路径)。

SPSite的基本使用。

在这个示例中,展示了SPSite的基本用法,包括上面所提到的几个重要功能:

using System;

using Microsoft.SharePoint;

namespace WSSModelObject

{

class Example1_1

{

[STAThread]

static void Main(string[] args)

{

//使用构造函数创建网站集对象

SPSite site = new SPSite("http://localhost");

//获取根网站信息

Console.WriteLine("Root:" + site.RootWeb);

//遍历网站集中的所有网站

Console.WriteLine("All Webs in site:");

foreach(SPWeb web in site.AllWebs)

{

Console.WriteLine(web);

}

//打开某个特定的网站

try

{

SPWeb web = site.OpenWeb("subweb1");

Console.WriteLine(web);

}

catch(Exception ex)

{

Console.WriteLine(ex.Message);

}

}

}

}

在编写程序的过程中,合理地使用try-catch语句是一种良好的编程习惯。SharePoint是一套相对庞大的对象模型体系,在编写程序的过程中,难免会出现预料之外的问题,因此应该尽可能对所有可能出错的语句进行try-catch,如果有必要,捕获每种特定的异常,并提供更加友好的出错信息,使得程序更加人性化。在本书中,为了节省篇幅,除非特殊的需要和说明,在后面的示例程序中一般不进行try-catch处理,请读者注意。

编写SharePoint的程序需要在引用中添加Microsoft.SharePoint.dll,如果是在安装了WSS的机器上,在VS.NET中添加引用界面选择Windows SharePoint Services即可,也可以将dll复制到其他的机器上再引用(但是仍然需要在装有WSS的机器上才能运行),该dll的默认安装路径为:C:\Program Files\Common Files\Microsoft Shared\web server extensions\60\ISAPI。在本书后续章节中除非特殊情况,不再使用完整的代码,而使用代码片段作为示例。Gmail中国ZR]'P?$P*UG ZS4mGmail中国h _3nK }'[['PSPWeb的使用在一般的应用场景下,SPWeb是使用最多的一个对象模型,因为几乎所有的WSS的内容都是依附于SPWeb对象的,在编程中也是使用SPWeb来获取其他的对象模型。而获取SPWeb对象的方法在本章9.2.2小节“SPSite的使用”中已经有所提及,就不在这里重复了。

大多数和WSS相关的内容都是通过使用SPWeb的一些成员变量来获取的,这些成员变量主要有:

·AllUsers:网站内的所有成员,以及通过域组(domain group)来浏览网站的用户;

·Files:网站下的所有文件;

·Folders:网站下的所有目录;

·Groups:所有跨网站用户组;

·Lists:网站下的所有列表;

·ListTemplates:网站下的所有列表模板;

·Permissions:网站下的权限;

·Roles:网站下的所有角色;

·Users:属于该网站的所有用户;

·Webs:该网站的所有子网站。

通过使用这些成员变量,就可以获取到相应内容的对象集合(Collection),进而获取需要的内容。

此外,SPWeb的某些成员变量对应于该网站的一些属性,例如:

·AllowAnonymousAccess:网站是否允许匿名访问(只读);

·Author:网站的创建者(只读);

·Created:网站的创建时间(只读);

·CurrentUser:当前的用户(只读);

·ID:唯一标识该网站的Guid(只读);

·IsRootWeb:该网站是否为顶级网站(只读);

·ParentWeb:该网站的父网站(只读);

·Site:该网站所属的网站集(只读);

·Title:该网站的标题;

·Url:该网站的url(绝对路径)(只读);

·WebTemplate:该网站的模板(只读)。

SPWeb对象还提供了一些方法,例如:

·GetFile:通过url获取一个文件的对象(SPFile);

·GetFolder:通过url获取一个目录的对象(SPFolder);

·GetListOfType:获取特定类型的列表的集合;

·GetSubwebsForCurrentUser:获取该网站的子网站(可以指定模板);

·GetViewFromUrl:通过url获取一个列表的视图(SPView);

·SaveAsTemplate:将网站保存为模板;

·SearchDocuments:搜索网站的文档库(需要开启全文检索功能);

·SearchListItems:搜索列表条目;

·Update:使网站属性的修改生效。

在SharePoint的对象模型中,一些比较重要的对象都会拥有Update方法(例如SPWeb、SPList、SPField和SPListItem),在修改这些对象的属性时,只有在调用Update方法之后,这些修改才会真正生效。仅限普通属性,不包括集合类的属性,比如SPWeb.Lists中添加或删除一个列表,不需要调用SPWeb.Update方法。这一点需要特别引起注意 。

得到一个网站集中的所有网站,并输出它们的标题、url、父网站及子网站。

SPSite site = new SPSite("http://localhost");

foreach(SPWeb web in site.AllWebs)

{

Console.WriteLine("Title: " + web.Title);

Console.WriteLine("Url: " + url);

Console.WriteLine("ParentWeb: " + web.ParentWeb);

Console.Write("SubWebs: ");

foreach(SPWeb subweb in web.Webs)

Console.Write(subweb.ToString() + " ");

Console.WriteLine();

}

一个小技巧:在.NET对象模型中,每个类都会有ToString函数(继承自Object类),一般来说每个类也都会对这个方法进行重写。SPWeb的ToString方法一般情况下就是返回了SPWeb.Title这个属性。在大多数字符串操作过程中,一个对象的ToString方法是可以被隐式调用的(例如示例9-1中就使用了这个特性),在不知道该对象是否为空(null)的时候,如果显式调用ToString方法会造成一个异常(NullReferenceException),但是在隐式调用的时候便不会产生这个异常,如果仅是作为输出的需要,隐式的调用要比显式的调用更加方便。

在示例中,输出每个网站的父网站,但是对于顶级网站来说,其父网站为空,如果显示调用的话,便会出现异常,采用隐式调用就可以避开这个问题,只显示一个空的字符串。示例使用了三种输出网站标题的方法:SPWeb.Title属性,隐式调用SPWeb.ToString方法,显式调用SPWeb.ToString方法。============================================731655954c7be9d8835ece551b5385f8.pngusingMicrosoft.SharePoint;

731655954c7be9d8835ece551b5385f8.png

731655954c7be9d8835ece551b5385f8.pngSPWeb site=SPControl.GetContextWeb(Context); 

731655954c7be9d8835ece551b5385f8.pngSPListItemCollection items=site.Lists["ListName"].Items;

731655954c7be9d8835ece551b5385f8.png

731655954c7be9d8835ece551b5385f8.pngSPListItem item=items.Add(); 

731655954c7be9d8835ece551b5385f8.png

731655954c7be9d8835ece551b5385f8.pngitem["Field_1"]=OneValue;

731655954c7be9d8835ece551b5385f8.png

731655954c7be9d8835ece551b5385f8.pngitem["Field_2"]=TwoValue;

731655954c7be9d8835ece551b5385f8.png

731655954c7be9d8835ece551b5385f8.pngitem.Update();

731655954c7be9d8835ece551b5385f8.png

731655954c7be9d8835ece551b5385f8.png

731655954c7be9d8835ece551b5385f8.png删除sharepoint list数据

731655954c7be9d8835ece551b5385f8.png=============================================731655954c7be9d8835ece551b5385f8.pngusingMicrosoft.SharePoint;

731655954c7be9d8835ece551b5385f8.png

731655954c7be9d8835ece551b5385f8.pngSPWeb site=SPControl.GetContextWeb(Context);

731655954c7be9d8835ece551b5385f8.png

731655954c7be9d8835ece551b5385f8.pngSPListItemCollection items=site.Lists["ListName"].Items;

731655954c7be9d8835ece551b5385f8.png

731655954c7be9d8835ece551b5385f8.pngitems[0].Delete();

731655954c7be9d8835ece551b5385f8.png

731655954c7be9d8835ece551b5385f8.png

731655954c7be9d8835ece551b5385f8.png上传文件到sharepoint

731655954c7be9d8835ece551b5385f8.png=============================================731655954c7be9d8835ece551b5385f8.pngusingSystem.IO;

731655954c7be9d8835ece551b5385f8.png

731655954c7be9d8835ece551b5385f8.pngusingMicrosoft.SharePoint;

731655954c7be9d8835ece551b5385f8.png

731655954c7be9d8835ece551b5385f8.pngif( htmlInputFile1.PostedFile!=null)

24a924a57ba6b3f2b51fc9edb7ea4186.png

9310e85a14af99de4811ff4c77f1f911.png222530190136c9c4cfd237cc0d5cff99.png{

1408c5260b2f05e450dee929db9be5f7.png          SPWeb site=newSPSite(destinationURL).OpenWeb(); 

1408c5260b2f05e450dee929db9be5f7.png          Stream stream=htmlInputFile1.PostedFile.InputStream;

1408c5260b2f05e450dee929db9be5f7.png

1408c5260b2f05e450dee929db9be5f7.pngbyte[] buffer=newbytes[stream.Length];

1408c5260b2f05e450dee929db9be5f7.png

1408c5260b2f05e450dee929db9be5f7.png          stream.Read(buffer,0, (int) stream.Length);

1408c5260b2f05e450dee929db9be5f7.png

1408c5260b2f05e450dee929db9be5f7.png          stream.Close();

1408c5260b2f05e450dee929db9be5f7.png

1408c5260b2f05e450dee929db9be5f7.png          site.Files.Add(destinationURL, buffer);

f466905a3bcb5dcef110eab799825254.png}731655954c7be9d8835ece551b5385f8.png

731655954c7be9d8835ece551b5385f8.png查询记录及更新数据

731655954c7be9d8835ece551b5385f8.png===============================================731655954c7be9d8835ece551b5385f8.pngusingMicrosoft.SharePoint;

731655954c7be9d8835ece551b5385f8.png

731655954c7be9d8835ece551b5385f8.pngSPWeb web=newSPSite("http://nick").OpenWeb("test");//Open website731655954c7be9d8835ece551b5385f8.png731655954c7be9d8835ece551b5385f8.pngweb.AllowUnsafeUpdates=true;

731655954c7be9d8835ece551b5385f8.png

731655954c7be9d8835ece551b5385f8.pngSPList list=web.Lists["ListName"];

731655954c7be9d8835ece551b5385f8.png

731655954c7be9d8835ece551b5385f8.pngSPQuery query=newSPQuery();

731655954c7be9d8835ece551b5385f8.png

731655954c7be9d8835ece551b5385f8.pngquery.Query=""+731655954c7be9d8835ece551b5385f8.png""+731655954c7be9d8835ece551b5385f8.png"Test"+731655954c7be9d8835ece551b5385f8.png""+(string)OneValue+""+731655954c7be9d8835ece551b5385f8.png""+731655954c7be9d8835ece551b5385f8.png""+(string)TwoValue+""+731655954c7be9d8835ece551b5385f8.png""+731655954c7be9d8835ece551b5385f8.png"";

731655954c7be9d8835ece551b5385f8.png

731655954c7be9d8835ece551b5385f8.pngquery.RowLimit=10;

731655954c7be9d8835ece551b5385f8.png

731655954c7be9d8835ece551b5385f8.png//查询731655954c7be9d8835ece551b5385f8.pngSPListItemCollection items=list.GetItems(query);

731655954c7be9d8835ece551b5385f8.pngtry24a924a57ba6b3f2b51fc9edb7ea4186.png

9310e85a14af99de4811ff4c77f1f911.png222530190136c9c4cfd237cc0d5cff99.png{

1408c5260b2f05e450dee929db9be5f7.pngif(Items.Count!=0)

715f2d05503b99d41f3b6ba2cdccc84d.png

e083dfde5a91f50979fe8979b4012b9d.png222530190136c9c4cfd237cc0d5cff99.png{

1408c5260b2f05e450dee929db9be5f7.png//更新sharepoint list 数据1408c5260b2f05e450dee929db9be5f7.pngforeach(SPListItem listinlistItems)

715f2d05503b99d41f3b6ba2cdccc84d.png

e083dfde5a91f50979fe8979b4012b9d.png222530190136c9c4cfd237cc0d5cff99.png{

1408c5260b2f05e450dee929db9be5f7.png         list["Filed_1"]=TextBox1.text.ToString();

1408c5260b2f05e450dee929db9be5f7.png         list["Filed_2"]=TextBox2.text.ToString();

1408c5260b2f05e450dee929db9be5f7.png         list["Filed_3"]=TextBox3.text.ToString();

1408c5260b2f05e450dee929db9be5f7.png

1408c5260b2f05e450dee929db9be5f7.png         listItem.Update();

5bcb1807ee3e00d2b3c225f0b3f5c751.png     }5bcb1807ee3e00d2b3c225f0b3f5c751.png  }1408c5260b2f05e450dee929db9be5f7.pngelse715f2d05503b99d41f3b6ba2cdccc84d.png

e083dfde5a91f50979fe8979b4012b9d.png222530190136c9c4cfd237cc0d5cff99.png{//将数据记录添加进sharepoint1408c5260b2f05e450dee929db9be5f7.pngSPListItem addlist=List.Items.Add();

1408c5260b2f05e450dee929db9be5f7.png

1408c5260b2f05e450dee929db9be5f7.png      addlist["Filed_1"]=TextBox1.Text.ToString();

1408c5260b2f05e450dee929db9be5f7.png      addlist["Filed_2"]=TextBox2.Text.ToString();

1408c5260b2f05e450dee929db9be5f7.png      addlist["Filed_3"]=TextBox3.Text.ToString();

1408c5260b2f05e450dee929db9be5f7.png

1408c5260b2f05e450dee929db9be5f7.png      addlist.Update();

5bcb1807ee3e00d2b3c225f0b3f5c751.png  }f466905a3bcb5dcef110eab799825254.png}731655954c7be9d8835ece551b5385f8.pngcatch24a924a57ba6b3f2b51fc9edb7ea4186.png

9310e85a14af99de4811ff4c77f1f911.png222530190136c9c4cfd237cc0d5cff99.png{

1408c5260b2f05e450dee929db9be5f7.png 

222530190136c9c4cfd237cc0d5cff99.png

f466905a3bcb5dcef110eab799825254.png}731655954c7be9d8835ece551b5385f8.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值