将JSP转换为SharePoint Web部件
我们在BEA门户中运行大量基于Java的servlet/Portlet,希望将其转换为SharePoint 2007 Web部件。许多portlet使用用户首选项,但实现在由portlet直接处理并存储在与门户分离的数据库中的首选项之间进行划分。其他人则使用BEA WebLogic API作为用户首选项 三个问题:将JSP转换为SharePoint Web部件,sharepoint,jsp,web-parts,Sharepoint,Jsp,Web Parts,我们在BEA门户中运行大量基于Java的servlet/Portlet,希望将其转换为SharePoint 2007 Web部件。许多portlet使用用户首选项,但实现在由portlet直接处理并存储在与门户分离的数据库中的首选项之间进行划分。其他人则使用BEA WebLogic API作为用户首选项 三个问题: 是否有人获得了Java Servlet/JSP(根据JRE 1.4.2编译并在Tomcat 4.1上运行)作为SharePoint 2007 Web部件运行 一般来说,工作量有多大(
我们有一个稍微相似的项目,我们正在从BEA门户网站转换到Sharepoint 区别在于我们没有任何Javaservlet或JSP页面作为webparts/Portlet,相反,我们系统上的所有代码都是.NETPortlet(现在是webparts.) Java servlet位于弹出窗口中,这些窗口使用超链接从Sharepoint链接 所以我不能给你一个答案。因为我们从来没有这样做过。
但是,将BEA门户portlet转换为SharePoint Web部件可能是一项重要的工作,因为您需要以完全不同的方式构建它们 就工作而言,我们在一年内将大约100个小工具迁移到Web部件/应用程序,其中包括1名全职开发人员和1名sharepoint基础架构/配置人员 而对于3。。。这取决于portlet的复杂程度。 如果您想将它们保留为portlet/webpart,则需要完全重写,除非您使用类似于页面查看器webpart的hack。。。但这样做并不是真正的迁移,而是用SharePoint封装现有系统 我想说这是一个大项目,需要仔细规划才能成功。
我希望这能有所帮助。以下是我为一个portlet(股票报价面板)所做的工作 我们有一个显示股票报价的小工具。我们在Tickertech有一个帐户,以便他们向我们提供报价信息。有一些用户偏好允许人们将小工具添加到私人页面,然后选择他们感兴趣的股票作为个人。您还可以选择要显示的列。这是通过JavaScript实现的。所选股票符号与标识来自有效客户的请求的令牌一起发送 最简单的方法是使用web内容控件,然后粘贴到JavaScript中。这是可行的,但用户无法更改股票符号或涉及Tickertech的其他首选项 下一步是创建自定义Web部件。我们正在使用VisualStudio的WSPBuilder附加组件。帮助我们完成项目的咨询公司重新推荐了它,我很高兴他们这么做了,将集成周期缩短到了可以接受的水平 在Web部件中,我们有一个包含脚本的属性
public class MarketSummaryWP : Microsoft.SharePoint.WebPartPages.WebPart
{
string m_scriptBlockPre = "<script language='javascript'> \n"+ // the beginning of the JavaScipt block
接下来,我将脚本更改为private,并创建了另一个属性来保存股票符号列表。请注意,Script属性在getter内部进行连接
//Script Property
[WebBrowsable(false),
WebDisplayName("Script"),
WebDescription("The JavaScript to insert in the page.")]
public string Script
{
get { return m_scriptBlockPre + m_stockSymbolsList + m_scriptBlockPost; }
//set { ; }
}
//Stock Symbol list Property
[Personalizable(PersonalizationScope.User), WebBrowsable(true),
WebDisplayName("Stock Symbols"),
WebDescription("The stock symbols to retrieve quotes for, seperated by commas.")]
public string StockSymbols
{
get { return m_stockSymbolsList; }
set { m_stockSymbolsList = value; }
}
string m_stockSymbolsList = "GE,CAT,$DJI,AMR,JNJ,";
string m_scriptBlockPost = " *other JavaScript code* </script> \n"+
//脚本属性
[WebBrowsable(假),
WebDisplayName(“脚本”),
WebDescription(“要插入页面中的JavaScript。”)]
公共字符串脚本
{
获取{return m_scriptBlockPre+m_stockSymbolsList+m_scriptBlockPost;}
//集合{;}
}
//股票符号列表属性
[Personalizable(PersonalizationScope.User),WebBrowsable(true),
WebDisplayName(“股票符号”),
WebDescription(“用于检索报价的股票符号,用逗号分隔)。]
公共字符串符号
{
获取{return m_stockSymbolsList;}
设置{m_stockSymbolsList=value;}
}
字符串m_stockSymbolsList=“GE,CAT,$DJI,AMR,JNJ,”;
字符串m_scriptBlockPost=“*其他JavaScript代码*\n”+
这会给我一个可以添加到任何页面的Web部件,因为它位于Web部件库中。要添加使用静态html Web部件构建的Web部件的副本,您需要从可能使用“查看源”的现有实例中获取JavaScipt块,导航到目标页面,添加静态html Web部件的新实例,并修改它以包含JavaScipt块;每一次。这样,用户只需从Web部件列表中选择它,就可以自定义股票报价首选项。@Bravax,您使用弹出窗口的解决方案听起来就像我对#1的想法。即使只是用SharePoint封装现有系统,也比尝试将所有portlet重写为Web部件要好。
//Script Property
[WebBrowsable(false),
WebDisplayName("Script"),
WebDescription("The JavaScript to insert in the page.")]
public string Script
{
get { return m_scriptBlockPre + m_stockSymbolsList + m_scriptBlockPost; }
//set { ; }
}
//Stock Symbol list Property
[Personalizable(PersonalizationScope.User), WebBrowsable(true),
WebDisplayName("Stock Symbols"),
WebDescription("The stock symbols to retrieve quotes for, seperated by commas.")]
public string StockSymbols
{
get { return m_stockSymbolsList; }
set { m_stockSymbolsList = value; }
}
string m_stockSymbolsList = "GE,CAT,$DJI,AMR,JNJ,";
string m_scriptBlockPost = " *other JavaScript code* </script> \n"+