我試圖將現有的.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>
你能共享更多的模板和渲染它們的控制器的代碼嗎?沒有更多的上下文很難看到有什麼不對。 – Mikesname
順便說一句,如果它不清楚,你聲明你的模板參數的方式,'AdditionalPageIncludes'是'Html'類型的_Parameter name_(儘管大寫參數名稱是非典型的Java/Scala風格。) – Mikesname
謝謝Mikesname,I已經自己添加了模板,但我還沒有創建控制器方法。我從例子中收集了如何定義「參數:類型」項目,但現在似乎沒有工作。 – Adam