2016-11-30 48 views
0

我試圖將現有的.NET MVC應用程序移植到Java Play。此應用程序使用ASP母版頁,我試圖通過使用播放模板來複制此概念。編譯Java Play應用程序時出錯,找不到模板參數

我已經按照這裏的文檔:https://www.playframework.com/documentation/2.5.x/JavaTemplateUseCases

如果我複製/粘貼的例子中,一切編譯。出於某種原因,不過,代我自己的參數會導致這個錯誤...

turkish:myApp adam$ ./bin/activator clean compile 
[info] Loading project definition from /Users/adam/myApp/myApp/project 
[info] Set current project to myApp (in build file:/Users/adam/myApp/myApp/) 
[success] Total time: 0 s, completed Nov 30, 2016 10:11:09 AM 
[info] Updating {file:/Users/adam/myApp/myApp/}root... 
[info] Resolving jline#jline;2.12.1 ... 
[info] Done updating. 
[info] Compiling 28 Scala sources and 9 Java sources to /Users/adam/myApp/myApp/target/scala-2.11/classes... 
[error] /Users/adam/myApp/myApp/app/views/Shared/Documentation.scala.html:1: not found: value AdditionalPageIncludes 
[error] @(AdditionalPageIncludes: Html)(SubNavigation: Html)(SectionTitle: Html)(TableOfContentsPlaceHolder: Html)(ArticlePlaceHolder: Html) 
[error] ^
[error] one error found 
[error] (compile:compileIncremental) Compilation failed 
[error] Total time: 13 s, completed Nov 30, 2016 10:11:21 AM 

如示例所示,我宣佈我在第一線的參數(?):

@(AdditionalPageIncludes: Html)(SubNavigation: Html)(SectionTitle: Html)(TableOfContentsPlaceHolder: Html)(ArticlePlaceHolder: Html) 

我去通過這個確切的過程昨天與類似的頁面,並最終得到了一切編譯。它似乎是先編譯視圖,然後通過激活器運行乾淨的編譯的一些組合。今天似乎沒有工作。

似乎每個項目構建後都有很多工件殘留,這就是爲什麼我每次都運行乾淨的編譯(永遠需要)。我有一種感覺,我只是不理解這些模板/參數應該如何工作。

這是在使用Java/Scala/Play時用參數定義模板的正確方法嗎?好像它期望使用這個參數而不是聲明它。

編輯:

這是正確編譯模板(視圖/共享/ PublicMain.scala.html):

@(AdditionalPageIncludes: Html)(MainContent: Html) 

<html xmlns="http://www.w3.org/1999/xhtml" > 
<head> 
    <title></title> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
    <meta name="description" content="" /> 
    <link rel="Stylesheet" type="text/css" href="/public/stylesheets/reset.css" /> 
    <link rel="Stylesheet" type="text/css" href="/public/stylesheets/public-main.css" /> 
    <link rel="Stylesheet" type="text/css" href="/public/stylesheets/ui.css" /> 
    <link rel="Stylesheet" type="text/css" href="/public/stylesheets/notification.css" /> 
    <link href='//fonts.googleapis.com/css?family=Source+Sans+Pro:400,700,400italic' rel='stylesheet' type='text/css'> 
    <script type="text/javascript" src="/public/javascripts/jquery-1.6.2.min.js"></script> 
    <script type="text/javascript" src="/public/javascripts/jquery-ui-1.8.16.custom.min.js"></script> 
    @AdditionalPageIncludes 
    <script type="text/javascript" src="/public/javascripts/Analytics.js"></script> 
</head> 
<body> 

    @MainContent 

</body> 
</html> 

這是無法對其進行編譯(視圖/共享/ DocumentationMain模板.scala.html):

@(AdditionalPageIncludes: Html)(SubNavigation: Html)(SectionTitle: Html)(TableOfContentsPlaceHolder: Html)(ArticlePlaceHolder: Html) 
<html xmlns="http://www.w3.org/1999/xhtml" > 
<head> 
    <title></title> 
    <link rel="Stylesheet" type="text/css" href="/public/stylesheets/reset.css" /> 
    <link rel="Stylesheet" type="text/css" href="/public/stylesheets/base.css" /> 
    <link rel="Stylesheet" type="text/css" href="/public/stylesheets/navigation.css" /> 
    <link rel="Stylesheet" type="text/css" href="/public/stylesheets/widget.css" /> 
    <link rel="Stylesheet" type="text/css" href="/public/stylesheets/profile.css" /> 
    <link rel="Stylesheet" type="text/css" href="/public/stylesheets/ui.css" /> 
    <link rel="Stylesheet" type="text/css" href="/public/stylesheets/notification.css" /> 
    <link rel="Stylesheet" type="text/css" href="/public/stylesheets/documentation.css" /> 
    <link rel="Stylesheet" type="text/css" href="/public/stylesheets/jquery.ui.all.css" /> 
    <link href='//fonts.googleapis.com/css?family=Source+Sans+Pro:400,700,400italic' rel='stylesheet' type='text/css' /> 
    <!--AdditionalPageIncludes--> 
</head> 
<body> 

    <div id="Header"> 
     <div id="HeaderContent"> 
      <span style="float:right; line-height:30px; font-size:1.5em; vertical-align:middle; color:#eee; font-weight:bold;">Documentation</span> 

      <div style="height:30px;"></div> 
      <div style="clear:both;"></div> 
     </div> 
    </div> 

    <div id="SectionHeader"> 
     <div id="SectionHeaderContent"> 
      <div id="SectionNavigation"> 
       <!--SubNavigation--> 
      </div> 
      <h2><!--SectionTitle--></h2> 
     </div> 
    </div> 

    <div id="Content"> 
     <div class="WidgetCanvas RoundCorners"> 



      <div style="clear:both;"></div> 

     </div> 
    </div> 

</body> 
</html> 
+0

你能共享更多的模板和渲染它們的控制器的代碼嗎?沒有更多的上下文很難看到有什麼不對。 – Mikesname

+0

順便說一句,如果它不清楚,你聲明你的模板參數的方式,'AdditionalPageIncludes'是'Html'類型的_Parameter name_(儘管大寫參數名稱是非典型的Java/Scala風格。) – Mikesname

+0

謝謝Mikesname,I已經自己添加了模板,但我還沒有創建控制器方法。我從例子中收集了如何定義「參數:類型」項目,但現在似乎沒有工作。 – Adam

回答

0

我想我找到了問題......因爲我遷移現有的應用程序,我一直在複製原始文件複製到新項目文件夾,並做了幾大量發現/替換的東西。我試圖在IntelliJ中創建一個全新的文件,添加了我需要的模板參數,並且所有內容都能正確編譯。

因此,您必須直接從IDE添加新文件,以便將背後的東西鏈接在一起。否則,它似乎無法找到要編譯的源代碼。這對我仍然沒有任何意義,但至少我的模板現在正在編譯。

相關問題