我正在使用Vaadin7。当我尝试将html内容添加到CustomLayout时,它不会在div元素内生成段落。这是输入:

<div style="margin-top: 10px; padding-left: 50px;" class="col-lg-10">
<div class="bs-component">
    <ul class="nav nav-pills">
        <li class="active"><a href="#Myprofile" class="active"
            data-toggle="tab">Profile</a></li>
        <li class=""><a href="#setting" data-toggle="tab">setting</a></li>
        <li class=""><a href="#tasks" data-toggle="tab">Tasks</a></li>
    </ul>
    <div class="tabbable">
        <div class="tab-content">
            <div id="Myprofile" location="Myprofile" class="tab-pane active"></div>
            <div id="setting" location="setting" class="tab-pane">
                <p>My paragraph</p>
            </div>
        </div>
    </div>
</div>




在Java中,我使用以下代码:

String html; //This var contain my input
InputStream is = new ByteArrayInputStream(html.getBytes());
CustomLayout custom = null;
            try {
                custom = new CustomLayout(is);
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }


最后,我将customLayout添加到我的mainLayout中。当我运行应用程序时,我得到以下输出:

<div style="margin-top: 10px; padding-left: 50px;" class="col-lg-10">
<div class="bs-component">
    <ul class="nav nav-pills">
        <li class="active"><a href="#Myprofile" class="active"
            data-toggle="tab">Profile</a></li>
        <li class=""><a href="#setting" data-toggle="tab">setting</a></li>
        <li class=""><a href="#tasks" data-toggle="tab">Tasks</a></li>
    </ul>
    <div class="tabbable">
        <div class="tab-content">
            <div id="Myprofile" location="Myprofile" class="tab-pane active"></div>
            <div id="setting" location="setting" class="tab-pane">
            </div>
        </div>
    </div>
</div>




我在div中id = setting的段落不是由Vaadin生成的。有解决这个问题的想法吗?

最佳答案

我找到了问题的根源。我删除了div元素中的location =“ setting”部分,它起作用了。我不知道为什么要这么做。可能是因为CustomLayout生成html时会寻找放置在该位置的元素,如果找不到,则会清除所有元素内容。

07-25 22:19