php
  • netbeans
  • ide
  • freemarker
  • template-engine
  • 2012-08-30 12 views 0 likes 
    0

    我有一些像在一個NetBeans代碼模板以下部分:

    /** 
    * stuff 
    */ 
    $name = '${name}'; 
    array('${var1 default="persons_${name}"}'); 
    

    我如何可以使var1default值在使用代碼模板時,實際上在前面一行中擴展了name變量作爲輸入?

    我期望能獲得:

    /** 
    * stuff 
    */ 
    $name = 'joseph'; 
    array('person_joseph'); 
    

    當我在約瑟夫填寫的名稱變量。

    +0

    這是一個關於編程或NetBeans的問題嗎? – Matt

    +0

    我想這兩種都有點,但可以被看作是更多關於Netbeans的問題。 Netbeans是一個IDE,代碼模板是用FreeMarker模板引擎語法編寫的,所以我想我應該添加它作爲標籤。但你的答案是肯定的,是的。 –

    +1

    我可以提醒大家,關於開發工具,配置和使用它們的問題完全是關於我們網站的主題。 http://stackoverflow.com/faq - **我可以在這裏問什麼樣的問題?** - *但如果你的問題一般涵蓋... *程序員常用的軟件工具 – Kev

    回答

    0

    看起來你的問題不是擴大${name},而是指定一個默認值。假設你想獲得person_josephvar1null或未定義它應該是:

    array('${var1!"persons_${name}"}'); 
    
    +0

    ddekany,這似乎並沒有做我所之後。模板展開的是'array('persons _ $ {name}');'而不是persons_joseph。 –

    +0

    這很奇怪。 FreeMarker從版本2.3(2004-06-15)開始執行此操作。也許NetBeans做一些模板預處理並且轉義'$'?無論如何,然後這樣做:'array('$ {var1!(「persons_」+ name)}');' – ddekany

    相關問題