Я пытаюсь подключить существующее приложение .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>
Можете ли вы поделиться больше кода как с вашими шаблонами, так и с контроллером, который их производит? Трудно понять, что не так, без дополнительного контекста. – Mikesname
BTW, если неясно, как вы декларируете параметры вашего шаблона, 'AdditionalPageIncludes' является _parameter name_ типа' Html' (хотя имена параметров заглавных букв - нетипичный стиль Java/Scala.) – Mikesname
Спасибо Mikesname, I Мы добавили сами шаблоны, но я еще не создал метод контроллера. Я собрал из примеров, как определить элементы «parameter: type», но теперь он не работает. – Adam