【问题标题】:Converting a JSP to a SharePoint webpart将 JSP 转换为 SharePoint Web 部件
【发布时间】:2010-06-03 21:51:08
【问题描述】:

我们有大量基于 Java 的 servlet/portlet 在 BEA 门户中运行,我们希望将其转换为 SharePoint 2007 Webpart。许多 portlet 使用用户首选项,但实现被分割为首选项,这些首选项由 portlet 直接处理并存储在与门户网站不同的数据库中。其他人则将 BEA WebLogic API 用于用户偏好。

三个问题:

  1. 是否有人将 Java Servlet/JSP(针对 JRE 1.4.2 编译并在 Tomcat 4.1 上运行)作为 SharePoint 2007 Webpart 运行?
  2. 一般来说,工作量有多大(例如,是否以天/周/月为单位衡量)?
  3. 至少就用户偏好而言,将 Portlet 重写为本地 Web 部件会更容易吗?

【问题讨论】:

    标签: sharepoint jsp web-parts


    【解决方案1】:

    我们有一个稍微相似的项目,我们正在从 BEA 门户网站转换为 Sharepoint。

    不同之处在于我们没有任何 java servlet 或 JSP 页面作为 webparts/portlet,而是我们系统上的所有代码都是 .net portlet(现在是 webparts。)。

    Java servlet 位于弹出窗口中,这些窗口使用超链接从 Sharepoint 链接。

    所以我无法回答 1。因为我们从未这样做过。
    但是,将 BEA 门户 portlet 转换为 SharePoint webpart 可能是一项重要的练习,因为您需要以完全不同的方式构建它们。

    就工作而言,我们在 1 年内将大约 100 个小工具迁移到 webpart/应用程序,其中有 1 名全职开发人员和 1 名共享点基础架构/配置人员。

    对于 3... 这取决于您的 portlet 的复杂程度。 如果您想将它们保留为 portlet/webparts,则需要完全重写,除非您使用像页面查看器 webpart 这样的黑客...但是您并没有真正迁移,您只是将现有系统与 SharePoint 封装在顶部。

    我会说这是一个大型项目,需要仔细规划才能成功。
    我希望这会有所帮助。

    【讨论】:

    • @Bravax,您使用弹出窗口的解决方案听起来像我对#1 的想法。即使它只是将现有系统与 SharePoint 封装在一起,它也比尝试将所有 portlet 重写为 webpart 更好。
    【解决方案2】:

    这是我为单个 portlet(股票报价面板)所做的。

    我们有一个显示股票报价的小工具。我们在 Tickertech 开设了一个帐户,以便他们向我们提供报价信息。有一些用户偏好允许人们将小工具添加到私人页面,然后选择他们作为个人感兴趣的股票。您还可以选择要显示的列。这是通过 JavaScript 完成的。选定的股票代码与一个令牌一起发送,该令牌将请求标识为来自有效客户。

    最简单的方法是使用 Web 内容控件并粘贴到 JavaScript 中。这可行,但用户无法更改涉及 Tickertech 的股票代码或其他偏好。

    下一步是创建自定义 Webpart。我们在 Visual Studio 中使用 WSPBuilder 附加组件。帮助我们完成项目的咨询公司推荐了它,我很高兴他们这样做了,将集成周期缩短到了可以接受的水平。

    在 webpart 中,我们有一个包含脚本的属性。

    public class MarketSummaryWP : Microsoft.SharePoint.WebPartPages.WebPart
    {     
        string m_scriptBlockPre = "<script language='javascript'> \n"+ // the beginning of the JavaScipt block 
    

    在 CreateChildControls() 覆盖中,我只是将其添加为文字。

    this.Controls.Add(new LiteralControl(this.Script));  
    

    接下来我将脚本更改为私有并创建另一个属性来保存股票代码列表。注意 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"+
    

    这为我提供了一个可以添加到任何页面的 Web 部件,因为它位于 Web 部件库中。要添加使用静态 html webpart 构建的 webpart 的副本,您需要从可能使用“查看源”的现有实例中获取 JavaScipt 块,导航到目标页面,添加静态 HTML webpart 的新实例,并修改它以包含 JavaScipt 块;每一次。这样,用户只需从 web 部件列表中选择它,他们就可以自定义股票报价偏好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-08
      • 2011-06-16
      • 1970-01-01
      • 2012-02-07
      • 1970-01-01
      • 2012-08-07
      • 1970-01-01
      相关资源
      最近更新 更多