簡體   English   中英

帶有Dojo / Dijit專用菜單欄的Spring Roo?

[英]Spring Roo with Dojo/Dijit declative menu bar?

我試圖在Spring ROO 1.1.4中使用Dojo / Dijit聲明性菜單 ,但是即使我用Dojo / Dijit hompage中的示例(適當地修改)替換了完整的roo生成的menue.jspx,它也不會替換裝飾的菜單div與菜單。

就是這樣

看起來如何

那應該是什么樣子:

看起來如何

我修改過的menu.jspx

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page"
    xmlns:menu="urn:jsptagdir:/WEB-INF/tags/menu"
    xmlns:sec="http://www.springframework.org/security/tags" 
    version="2.0">
    <jsp:directive.page contentType="text/html;charset=UTF-8" />
    <jsp:output omit-xml-declaration="yes" />

    <script type="text/javascript">
            dojo.require("dijit.MenuBar");
            dojo.require("dijit.PopupMenuBarItem");
            dojo.require("dijit.Menu");
            dojo.require("dijit.MenuItem");
            dojo.require("dijit.PopupMenuItem");
        </script>   
    </head>

        <div dojoType="dijit.MenuBar" id="navMenu">
            <div dojoType="dijit.PopupMenuBarItem">
                <span>
                    File
                </span>
                <div dojoType="dijit.Menu" id="fileMenu">
                    <div dojoType="dijit.MenuItem" onClick="alert('file 1')">
                        File #1
                    </div>
                    <div dojoType="dijit.MenuItem" onClick="alert('file 2')">
                        File #2
                    </div>
                </div>
            </div>
            <div dojoType="dijit.PopupMenuBarItem">
                <span>
                    Edit
                </span>
                <div dojoType="dijit.Menu" id="editMenu">
                    <div dojoType="dijit.MenuItem" onClick="alert('edit 1')">
                        Edit #1
                    </div>
                    <div dojoType="dijit.MenuItem" onClick="alert('edit 2')">
                        Edit #2
                    </div>
                </div>
            </div>
        </div>
</jsp:root>

有人可以提示我我做錯了什么嗎? (我知道可以通過程序來執行菜單的后備功能,但我想聲明性地進行操作。)


html標頭如下所示:

<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=8" />    

    ...
    <script type="text/javascript">var djConfig = {parseOnLoad: false, isDebug: false, locale: '${fn:toLowerCase(userLocale)}'};</script>

    <script src="${dojo_url}" type="text/javascript"><!-- required for FF3 and Opera --></script>
    <script src="${spring_url}" type="text/javascript"><!-- /required for FF3 and Opera --></script>
    <script src="${spring_dojo_url}" type="text/javascript"><!-- required for FF3 and Opera --></script>
    <script language="JavaScript" type="text/javascript">dojo.require("dojo.parser");</script>      


    <spring:message code="application_name" var="app_name"/>
    <title><spring:message code="welcome_h3" arguments="${app_name}" /></title>
</head>

我對Spring Roo一無所知,所以也許我在這里說的很愚蠢...

該menu.jspx是否可以編譯為靜態html? 如果是這種情況,您可以簡單地通過在djConfig上將parseOnLoad設置為true來告訴Dojo解析初始頁面。

var djConfig = {parseOnLoad: true, ...}

(在這種情況下,不需要dojo.parser)。

另一方面,如果該模板是動態插入的,則需要自己在根“ navMenu”節點上調用dojo.parser.parse()。 您似乎需要它,但是我看不到它的名稱。

我必須使用:{dojo.addOnLoad(function(){dojo.parser.parse();}); }

代替parseOnLoad:true

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM