2011-07-29 13 views
1

私はSpring ROO 1.1.4でDojo/Dijit declarative menuを使用しようとしていますが、生成された完全なrooをmenjo.jspxで生成したものをDojo/DijitのHompageの例(ligthly addapted)に置き換えても、メニューと一緒に。Doo/DijitディメンションメニューバーのあるSpring Roo?

how shoul look

マイ修正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> 

は、誰が私を与えることができます:それはどのようになるはずである

how it look

を見てどのようである

私が何をやっているのかをヒントg? は(私は、メニューのプログラムを行うためのフォールバックを知っているが、私はそれを、宣言したいと思う)


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> 
+0

? Dojoはこれを解析するときはいつですか? – hugomg

+0

@missingno:htmlヘッダーを追加しました。それはあなたが知りたいことですか? – Ralph

答えて

1

私は知っていません何か春のRooについて何か、おそらく私はここで非常にばかな何かを言っている...

その静的HTMLにコンパイルしているmenu.jspxですか?このような場合は、単にあなたのdjConfig

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

(この場合はdojo.parserを必要とする必要はありません)にtrueにparseOnLoadを設定することで、あなたの最初のページを解析するために道場を伝えることができます。

一方、そのテンプレートがディナミカルに挿入されている場合は、ルート 'navMenu'ノードでdojo.parser.parse()を呼び出す必要があります。あなたはそれを求めているようですが、どこに呼び出されているのか分かりません。

+0

私はそれらを試してみましょう - Btw:それは静的な方法で動作します:menu.jspxといくつかのohter jspxファイルはレンダリングされ、Apache Tilesと組み合わされ、すべてが1つの静的ファイルでブラウザに送信されます – Ralph

+0

parseOnLoadのヒントは素晴らしかったです:私はあなたの答えには敏感ですが、行の設定を変更する必要があることを明確にするためにいくつかのフレーズを追加してください。 ''を' parseOnLoad:true'に置き換えてください! – Ralph

0

私が使用していた: {dojo.addOnLoad(関数(){ dojo.parser.parse();} )。 }の代わりにparseOnLoadの

:あなたは道場のスクリプトタグを含めている真の

関連する問題