Akka/play(activator)2.5.3 创建工程
2016-5-19
4. 测试自带的Controller
首先,我们看一下交互
[root@xuyongshimytest]# curl -X GET http://127.0.0.1:9000/message
Hi![root@xuyongshimytest]#
[root@xuyongshimytest]# curl -X GET http://127.0.0.1:9000/count
0[root@xuyongshimytest]#
[root@xuyongshimytest]# curl http://127.0.0.1:9000/count
1[root@xuyongshimytest]#
4.1 conf/routes文件
这个配置指明了url地址和 controller及里面的方法之间的关系。
如: GET /count controllers.CountController.count
客户端使用GET动词访问/count的时候,由controllers.CountController类的count方法响应。
在packagecontrollers 下 有
Controller
|
CountController
对应的函数如下:
publicResult count() {
returnok(Integer.toString(counter.nextCount()));
}
在浏览器中,直接访问http://localhost:9000/count,页面显示一个数字。
4.2 写一个简单的controller
conf/routes文件中添加如下定义:
PUT /:str1/:str2 controllers.MyController.myFunc(str1: String, str2: String)
app/ controllers目录下,添加MyController.java文件:
packagecontrollers;
importplay.Logger;
importplay.mvc.Controller;
importplay.mvc.Result;
publicclass MyController extends Controller {
/**
*Example: curl -X PUT http://localhost:9000/my1/my2
*@return
*/
publicResult myFunc(String str1, String str2) {
Logger.info("Class:[{}], Method: [{}], Message: [{}]",
"myController","myFunc", "para1: "+str1+", para2: "+str2);
returnok(""+ str1 + "\n" + str2 + "\n" +"hello again!\n");
}
}
打开一个终端,执行:curl -X PUThttp://localhost:9000/my1/my2
play能够自动感知变化,动态编译,加载配置,响应请求。
控制台输出如下:
[info]Compiling 4 Scala sources and 2 Java sources to/tmp/demo/mytest/target/scala-2.11/classes...
[info]Compiling 2 Scala sources to/tmp/demo/mytest/target/scala-2.11/classes...
[info]Compiling 1 Scala source to/tmp/demo/mytest/target/scala-2.11/classes...
---(RELOAD) ---
[info]application - ApplicationTimer demo: Stopping application at2016-05-19T06:41:25.830Z after 14203s.
[info]application - ApplicationTimer demo: Starting application at2016-05-19T06:41:26.141Z
[info]play.api.Play - Application started (Dev)
[info]application - Class: [myController], Method: [myFunc], Message:[para1: my1, para2: my2]
客户端输出如下:
[root@xuyongshicontrollers]# curl -X PUT http://localhost:9000/my1/my2
my1
my2
helloagain!