Revel框架-Go语言-无法找到控制器

I am using Revel framework for golang. I have a subdirectory in my controllers folder like below

controllers
   new
     app2.go
   app1.go

Contents of app1.go

package controllers

import (
    "github.com/revel/revel"
)

type APP1 struct {
    *revel.Controller
}
func (c APP1) Show() revel.Result {
}

Contents of app2.go

import (
    "github.com/revel/revel"
)

type APP2 struct {
    *revel.Controller
}
func (c APP2) Show() revel.Result {
}

My routes file is like this

GET     /v1/show              APP1.show
GET     /v2/show              APP2.show

When I call /v2/show it gives me error failed to find controller APP2 while v1/show is working absolutely working fine. Can anybody tell me how to fix it.

Configure the route for APP2.show like this GET /new/v2/show

Add the below at the top of app2.go

package controllers

I tried the same using a similar example and it worked for me. I would suggest not to use full capitalized controller names; use App2 instead of APP2.

I was a little confused to find out that the methods referenced from the router need to be Pascal Cased to be recognized (e.g. like above func (c APP2) DescribeService() revel.Result). This might be obvious to seasoned Revel or Go developers but really wasn't obvious to me.