2016-11-30 7 views
0

Я пытаюсь подключить существующее приложение .NET MVC к Java Play. Это приложение использует ASP Master Pages, и я пытаюсь продублировать эту концепцию с помощью шаблонов воспроизведения.Ошибка компиляции приложения 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? Кажется, он рассчитывает использовать этот параметр, а не объявлять его.

EDIT:

Это шаблон, который компилирует правильно (просмотров/Shared/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> 

Это шаблон, который не может скомпилировать (Views/Shared/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

BTW, если неясно, как вы декларируете параметры вашего шаблона, 'AdditionalPageIncludes' является _parameter name_ типа' Html' (хотя имена параметров заглавных букв - нетипичный стиль Java/Scala.) – Mikesname

+0

Спасибо Mikesname, I Мы добавили сами шаблоны, но я еще не создал метод контроллера. Я собрал из примеров, как определить элементы «parameter: type», но теперь он не работает. – Adam

ответ

0

Я думаю, что я нашел эту проблему ... так как я миграции существующего приложения, я копирование оригинальных файлов в новые папки проекта и делать несколько массовая находка/замена вещей. Я попытался создать совершенно новый файл в IntelliJ, добавил необходимые параметры шаблона, и все правильно компилируется.

Итак, вам нужно добавить новые файлы прямо из IDE, чтобы связать что-то за кулисами. В противном случае, похоже, не удается найти источники для компиляции. Это все еще не имеет для меня никакого смысла, но, по крайней мере, мои шаблоны сейчас компилируются.