我有一个奇怪的错误,当我试图编译一个喷雾项目,其旋转文件预计将显示2个日期之间的RDV(会议)列表:
> compile
[info] Compiling twirl template .../texte.scala.html to .../texte.template.scala
[info] Compiling 9 Scala sources to /Users/oliviersaint-eve/sms/SPRAY/spray-macaque/target/scala-2.10/classes...
[error] /Users/oliviersaint-eve/sms/SPRAY/spray-macaque/target/scala-2.10/src_managed/main/generated-twirl-sources/html/texte.template.scala:16: ')' expected but '=' found.
[error] Seq[Any](_display_(Seq[Any](/*2.2*/(rdvs:List[Rdv], de:String = "Entrez une date", jusque:String = "Entrez une date"))),format.raw/*2.84*/("""
[error] ^
[error] /Users/oliviersaint-eve/sms/SPRAY/spray-macaque/target/scala-2.10/src_managed/main/generated-twirl-sources/html/texte.template.scala:120: ')' expected but '}' found.
[error] </html>"""))}
[error] ^
[error] two errors found
[error] 2 problem(s) in Twirl template(s) found
[error] /Users/oliviersaint-eve/sms/SPRAY/spray-macaque/src/main/twirl/texte.scala.html:2: ')' expected but '=' found.
[error] @(rdvs:List[Rdv], de:String = "Entrez une date", jusque:String = "Entrez une date")
[error] ^
[error] /Users/oliviersaint-eve/sms/SPRAY/spray-macaque/src/main/twirl/texte.scala.html:108: ')' expected but '}' found.
[error] (compile:compile) Compilation failed
[error] Total time: 1 s, completed 17 mars 2014 19:48:06
在twirl编译文件中出现一些错误后,sbt在html文件中给我相应的错误,但我无法理解;
这是twirl文件:
@import metier.Objets.Rdv
@(rdvs:List[Rdv], de:String = "Entrez une date", jusque:String = "Entrez une date")
<!-- -->
<html>
<head>
<!-- DataTables CSS -->
<link rel="stylesheet" type="text/css"
href="http://ajax.aspnetcdn.com/ajax/jquery.dataTables/1.9.4/css/jquery.dataTables.css">
<!-- jQuery
<script type="text/javascript" charset="utf8"
src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.8.2.min.js"></script>-->
<link rel="stylesheet"
href="//code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css">
<script src="//code.jquery.com/jquery-1.9.1.js"></script>
<script src="//code.jquery.com/ui/1.10.4/jquery-ui.js"></script>
<link rel="stylesheet" href="/resources/demos/style.css">
<!-- DataTables -->
<script type="text/javascript" charset="utf8"
src="http://ajax.aspnetcdn.com/ajax/jquery.dataTables/1.9.4/jquery.dataTables.min.js"></script>
<script type="text/javascript" src="https://github.com/jquery/jquery-ui/blob/master/ui/i18n/datepicker-fr.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$('#aTable').dataTable();
});
</script>
<script>
$(function() {
$.datepicker.setDefaults($.datepicker.regional[""]);
$("#from").datepicker({
dateFormat: 'dd-mm-yy',
changeMonth : true,
changeYear : true,
onClose : function(selectedDate) {
$("#to").datepicker("option", "minDate", selectedDate);
}
});
$("#from").datepicker($.datepicker.regional["fr"]);
$("#to").datepicker({
dateFormat: 'dd-mm-yy',
changeMonth : true,
changeYear : true,
onClose : function(selectedDate) {
$("#from").datepicker("option", "maxDate", selectedDate);
}
});
});
</script>
</head>
@* This template is a simple html template --- (this text btw. is a
comment and is not rendered) *@
<form class="form-horizontal" id="signinForm" action="" method="post">
<label>hello</label> <input name="nom" />
<button data-bind="click: signin">CLICK ME!</button>
<br /> <label for="from">De</label> <input type="text" id="from"
name="from"> <label for="De">à</label> <input type="text"
id="to" name="to">
</form>
<table id="aTable" class="display" width="500px" align="left">
<thead>
<tr>
<th>Nom</th>
<th>Prénom</th>
<th>Date examen</th>
<th>Heure Examen</th>
<th>Tél.</th>
<th>Bureau</th>
<th>Privé</th>
<th>Site</th>
<th>Type</th>
<th>Libellé</th>
<th>orderID</th>
<th>Statut</th>
</tr>
</thead>
<tbody>
@for(rdv <- rdvs){
<tr>
<td>@rdv.nom</td>
<td>@rdv.prénom</td>
<td>@rdv.dateRDV</td>
<td>@rdv.heureRDVString</td>
<td>@rdv.telPortable</td>
<td>@rdv.telBureau</td>
<td>@rdv.telPrivé</td>
<td>@rdv.siteRDV</td>
<td>@rdv.typeRDV</td>
<td>@rdv.libelléRDV</td>
<td>@rdv.orderId</td>
<td>@rdv.statut</td>
</tr>
}
</tbody>
</table>
</html>
错误只与开头有关。你能帮我吗?
ps:这是处理前一个twirl文件形式的路由部分:
post {
formField( 'nom ,'from, 'to) { (name,de,jusque) =>
println( "button clicked!" )
respondWithMediaType( `text/html` ) {
val listOfRdv:List[Rdv]=grab_rdv
complete( html.texte(listOfRdv ).toString )
}
}
}
感谢PS:回答评论,这里是新的错误,当我删除默认值:
(info] Compiling twirl template .../texte.scala.html to .../texte.template.scala
[info] Compiling 9 Scala sources to /Users/oliviersaint-eve/sms/SPRAY/spray-macaque/target/scala-2.10/classes...
[error] /Users/oliviersaint-eve/sms/SPRAY/spray-macaque/src/main/scala/com/example/MyService.scala:43: too many arguments for method apply: ()twirl.api.HtmlFormat.Appendable in object texte
[error] complete( html.texte( Nil ).toString )
[error] ^
[error] /Users/oliviersaint-eve/sms/SPRAY/spray-macaque/src/main/scala/metier/Objets.scala:4: object io is not a member of package reflect
[error] import scala.reflect.io.File
[error] ^
[error] /Users/oliviersaint-eve/sms/SPRAY/spray-macaque/src/main/scala/metier/Objets.scala:124: not found: value File
[error] val fileToSave = File(fileString)
[error] ^
[error] /Users/oliviersaint-eve/sms/SPRAY/spray-macaque/src/main/scala/metier/Objets.scala:127: not found: value File
[error] val ancientFile = File(fileString + ".save")
[error] ^
[error] /Users/oliviersaint-eve/sms/SPRAY/spray-macaque/target/scala-2.10/src_managed/main/generated-twirl-sources/html/texte.template.scala:16: not found: value rdvs
[error] Seq[Any](_display_(Seq[Any](/*2.2*/(rdvs:List[Rdv], de:String, jusque:String ))),format.raw/*2.45*/("""
[error] ^
[error] 5 errors found
[error] 1 problem(s) in Twirl template(s) found
[error] /Users/oliviersaint-eve/sms/SPRAY/spray-macaque/src/main/twirl/texte.scala.html:2: not found: value rdvs
[error] @(rdvs:List[Rdv], de:String, jusque:String )
[error] ^
[error] (compile:compile) Compilation failed
[error] Total time: 9 s, completed 17 mars 2014 20:56:12
再一次,这是不可理解的,在我的路由中,我要么用List[Rdv]类型的参数调用页面,要么用Nil…
似乎不能在模板参数中使用默认值。试着像这样修改第二行:
@(rdvs: List[Rdv], de: String, jusque: String)
您可以传递这些值,而不是保持它们为默认值。