在我的vaadin视图中嵌入了jsp页面

时间:2016-10-14 02:37:03

标签: java vaadin

我希望在我的vaadin视图中嵌入jsp页面。请让我知道要遵循的步骤。

我已完成以下步骤:

  1. 在vaadin视图中添加了我的jsp页面,如下所示。

        var monthList = new Dictionary<String, List<String>>();
        foreach (DataRow dr in dsSeries.Tables[0].Rows)
        {
            var key = dr["MonthName"].ToString();
            var value = dr["Department"].ToString();
            if (!monthList.ContainsKey(key))
            {
                monthList.Add(key, new List<string>());
            }
    
            monthList[key].Add(value);
        }
    
        List<string> b = new List<String>();
        foreach (var month in monthList.Keys)
        {
            b.Add(month + ": " + String.Join(", ", monthList[month])");
        }
    
  2. 但我不知道如何在web.xml中为这个jsp包含映射。

    请向我解释一下我需要放置jsp文件的步骤,如何进行映射请求

2 个答案:

答案 0 :(得分:0)

首先,我想知道你是否正在使用Vaadin。 Vaadin的目的是通过完全用Java构建来提供Web应用程序的用户界面。因此,通常您不需要嵌入Web视图或Web内容。

BrowserFrame小部件

但有时,嵌入一些非Vaadin内容可能是有意义的。请参阅BrowserFrame中所述的The Book of Vaadin小部件。适用于Vaadin 7.0及更高版本。

的Portlet

如果您的Vaadin应用程序只是更大的网站环境的一小部分,请注意Vaadin也可以用作Java Portlet

对于portlet驱动的应用程序,

LifeRay通常是used in conjunction with Vaadin的portlet环境。

答案 1 :(得分:0)

如果您的JSP页面位于一个单独的servlet中,那么Basil的回答可能是有效的,无论是否在您自己的控制之外(让我们说一个公共网页)(您可以)将其作为单独的servlet安装在您自己的服务器中)。在这两种情况下,如果它是JSP页面,PHP或其他任何东西都不会产生影响 - 在每种情况下,在任何一种情况下你都会得到简单解释的HTML。也就是说,BrowserFrame方法可能是正确的方法,因为它是Vaadin相当于&#34; good ole&#34; HTML iframe

如果要嵌入JSP页面或整个 JSP应用程序,可以通过使用Servlet Mapping和webapp文件夹来实现。唯一的缺点是你的Vaadin应用程序需要从新的路径中访问。而不是根目录让我们说你是通过http://yourdomain.com/yourVaadinApp访问的 - 现在你需要定义/ app -or类似路径,这样你的应用就可以从{{1 }}。您必须在主UI应用类的http://yourdomain.com/yourVaadinApp/app注释中定义它(也可以通过@WebServlet完成):

web.xml

接下来,您可以将JSP(或JSP文件集合)放在@WebServlet(value = {"/app/*", "/VAADIN/*"}, asyncSupported = true) 文件夹中。这样,在部署应用程序时,您的JSP将可以从yourAppProjectFolder/src/main/webapp访问(或者只是基本路径,如果您的文件是默认文档 - 取决于您的服务器或您的配置,如base path/yourFile.jsp - ,那将是index.jsp),或您选择的文件夹。

不幸的是,到目前为止,我还不知道如何排除&#34;排除&#34; webapp文件夹内容,而不将Vaadin应用程序基本路径映射到&#34;子路径&#34;。