【问题标题】:Play framework - illegal start of simple expression播放框架-简单表达式的非法启动
【发布时间】:2013-08-04 10:55:29
【问题描述】:

我正在尝试实现按类型显示企业的过滤器功能。这是“搜索表单”,用户可以在其中选择他们想要显示的业务类型

@(businessList: List[Business], formSearch: Form[Business])

@import helper._

@main("All businesses"){

@form(action=routes.Application.displayAllBusinesses("")){
     @select(formSearch("type"),options(Seq("Dining","Accomodation","Manufacturing","Retail", "Services")),'_label ->"Business Type",'_default->"--Select a business type--")

    <input type="submit" class="btn btn-success" value="Search by type">
    <a class="btn"  href="@routes.Application.displayAllBusinesses()">Show all businesses</a>
    <a class="btn" href="/registerBusiness">Register a business</a>
}

然后我有一个for循环来显示所有的业务:

<ul>
    @for(business <- businessList) {
        <li>
            <p>Business Name: @business.getName()</p>
            <p>Business Type: @business.getType()</p>
            <p>Business Email: @business.getEmail()</p>
            <p>Business Location: @business.getLocation()</p>
            <p>Business Description: @business.getDescription()</p>
            <p>Id is: @business.id </p>

           <a class="btn" href="@routes.Application.displayUpdateBusiness(business.id)">Update</a>
            @form(routes.Application.deleteBusiness(business.id)) {
                <input class="btn" type="submit" value="Delete"> 
            }
        </li>
    }
</ul>

当用户提交他们的表单时,displayAllbusinesses 路由看起来像(这是错误出现的地方):

GET      /listBusinesses            controllers.Application.displayAllBusinesses(type: String ?= "all")  

app/Application.java 中的 displayAllbusinesses 方法是:

public static Result displayAllBusinesses(String type){
    List<Business> businesses;
    if(type=="all"){
        businesses = allBusinesses;
    } else {
        businesses = Business.find.where().like("type", type).findList();
        //TRACE
        System.out.println(businesses);
   }
   return ok(listBusinesses.render(businesses, businessForm));
}            

当我运行此代码时,我得到 /listBusinesses 路由的“非法开始简单表达式”。这是什么意思?

【问题讨论】:

  • 你说你有方法叫displayAllBusinesses,但是你粘贴了方法goToBusinessListPage,怎么会?
  • 糟糕,我的错。更正

标签: java scala playframework playframework-2.0


【解决方案1】:

type 是 Scala 中的保留关键字。路由编译器没有正确转义它,我认为这是一个已知的错误。

【讨论】:

  • “包”这个词也有同样的问题
【解决方案2】:

答案:我在路线中输入大写

controllers.Application.displayAllBusinesses(Type: String ?= "all")

并将搜索表单更改为也将类型大写

@form(action=routes.Application.displayAllBusinesses("")){
 @select(formSearch("Type"),options(Seq("Dining","Accomodation","Manufacturing","Retail", "Services")),'_label ->"Business Type",'_default->"--Select a business type--")

现在可以了。去图

【讨论】:

    猜你喜欢
    • 2017-07-13
    • 1970-01-01
    • 1970-01-01
    • 2012-06-24
    • 2014-10-19
    • 2014-05-18
    • 1970-01-01
    • 2018-08-16
    • 1970-01-01
    相关资源
    最近更新 更多