代码之家  ›  专栏  ›  技术社区  ›  Kelly S. French

将JSP转换为SharePoint Web部件

  •  3
  • Kelly S. French  · 技术社区  · 15 年前

    我们有大量的基于Java的servlet / portlet在BEA门户中运行,我们希望将其转换成SharePoint 2007 WebPort。许多portlet使用用户首选项,但实现在portlet直接处理的首选项之间进行拆分,并存储在与门户不同的数据库中。其他人使用BEA WebLogic API作为用户首选项。

    三个问题:

    1. 有人得到Java Servlet /JSP(根据JRE 1.4.2编译并运行在Tomcat 4.1上)作为SharePoint 2007 WebPert运行吗?
    2. 一般来说,它的工作量有多大(比如,它是以天/周/月来衡量的)?
    3. 至少在用户偏好方面,将portlet重写为本机Web部件更容易吗?
    2 回复  |  直到 15 年前
        1
  •  1
  •   Bravax    15 年前

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

    不同的是,我们没有任何Java Servlet或JSP页面作为WebStudio/portlet,而是我们的系统上的所有代码是.NET portlet(现在是WebPort)。

    Java servlet在弹出窗口中,使用超链接从SharePoint链接。

    所以我不能给你1的答案。因为我们从来没有这样做过。
    但是,将BEA门户portlet转换为SharePoint Web部件可能是一个重要的练习,因为您需要以完全不同的方式构建它们。

    在工作方面,我们在1年内将大约100个小工具迁移到Web部件/应用程序,其中有1个全职开发人员和1个SharePoint基础结构/配置人员。

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

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

        2
  •  0
  •   Kelly S. French    15 年前

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

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

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

    下一步是创建自定义Web部件。我们正在使用Visual Studio的wspbuilder附加组件。帮助我们完成这个项目的咨询公司重新提出了它,我很高兴他们这么做,将集成周期降低到了一个可以容忍的水平。

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

    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 Web部件生成的Web部件的副本,您需要从可能使用“查看源代码”的现有实例获取JavaScript块,导航到目标页,添加静态HTML Web部件的新实例,并每次修改该实例以包括JavaScript块。这样,用户只需从Web部件列表中选择它,就可以自定义股票报价首选项。