首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >twirl文件中出现不可理解的错误(scala+sbt+spray+twirl)

twirl文件中出现不可理解的错误(scala+sbt+spray+twirl)
EN

Stack Overflow用户
提问于 2014-03-18 03:20:19
回答 1查看 1.1K关注 0票数 1

当我试图编译一个喷雾项目时,我遇到了一个奇怪的错误,该项目的twirl文件预计会显示两个日期之间的RDV (会议)列表:

代码语言:javascript
复制
> 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文件:

代码语言:javascript
复制
@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文件格式的部分路径:

代码语言:javascript
复制
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 :为了回答评论,当我删除默认值时,下面是新的错误:

[

代码语言:javascript
复制
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

同样,这是难以理解的,在我的方法中,我要么使用ListRdv类型的参数调用页面,要么使用Nil类型的参数调用页面…

EN

回答 1

Stack Overflow用户

发布于 2014-03-18 03:29:53

似乎您的模板参数中不能有默认值。尝试像这样更改第二行:

代码语言:javascript
复制
@(rdvs: List[Rdv], de: String, jusque: String)

您可以传递这些值,而不是将它们保留为默认值。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22463430

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档