自从选择了做java程序猿啊!!!!!!!
于是走上了不归路啊!!!!!!!!!!
一堆的框架要学啊!!!!!!!!!!!
一堆的配置要写啊!!!!!!!!!!
启动个WAS要半小时啊!!!!!!!
改个BUG还要重启啊!!!!!!!!!
RAD、Eclipse动不动就卡得要死啊!!!!!
写个增删改也要一堆的接口实现设计模式啊!!!
看着人家Ruby程序猿羡慕嫉妒恨啊!!!!!
有木有!!!!!有木有!!!!!!!!
做java的程序猿你伤不起啊啊!!!!!!!
大神们终于看不下去了啊!!!!!!!
放出神器来拯救世界啊!!!!!!!!
咆哮完毕,就请我们的神器隆重登场吧~~~~~
我们今天的猪脚就是~~~~~
Playframework~~
像玩一样编程, 传说中有了它,放个猴子在电脑前都会编程了!
先来看看他都有神马本领:
再来五个很酷的片段,展示一下play的哲学:
1.绑定HTTP参数到java方法参数
在Play框架中,获取http参数是非常容易的事情。只需要将方法参数名与HTTP参数名一致就行了。
比如下面的HTTP请求:
/articles/archive?date=08/01/08&page=2
只需要在java方法中定义两个名为date和page的参数就可以了
- public static void archive(Date date, Integer page) {
- List articles = Articles.fromArchive(date, page);
- render(articles);
- }
Play会自动将HTTP参数转换为方法参数的类型
同样,还可以绑定到java对象类型,比如这样一个对象:
- public class Person {
- public String name;
- public Integer age;
- }
一个保存人员的方法只需要这样写:
- public static void add(Person p) {
- p.save();
- }
相应的HTML表单代码:
- Name:
- Age:
2.通过调用相应的java方法实现操作跳转
在Play里面没有JavaServlet的forward方法,但跳转到其他的方法仍然是十分简单。只需要调用相应的java方法,Play会自动生成HTTP跳转的响应。
- public static void show(Long id) {
- Article article = Article.findById(id);
- render(article);
- }
- public static void edit(Long id, String title) {
- Article article = Article.findById(id);
- article.title = title;
- article.save();
- show(id);
- }
在edit方法的最后,调用了show方法,这会产生一个HTTP 302跳转,可有效的避免表单重复提交。
在任何模板文件中,可以使用相同的语法来生成这个链接:
生成的HTML代码如下:
3.传递java对象到模板中
在大多数的Java框架中,需要类似下面方法来传递Java对象到模板中:
- Article article = Article.findById(id);
- User user = User.getConnected();
- Map
model = new HashMap (); - model.put("article", article);
- model.put("user", user);
- render(model);
使用Play框架,你只需要这样写:
- Article article = Article.findById(id);
- User user = User.getConnected();
- render(article, user);
模板中可以直接使用变量名称来获取对象值,减少大量无用的代码
4.增强的JPA支持
JPA可以说是Java里面最好的的对象-关系映射(ORM)API,Play更是将JPA的支持简化到了极致。不需要任何的配置,Play就会自动启动基于Hibernate的JPA实体管理器,而且在代码重载的时候自动神奇的同步。
如果你使用框架提供的play.db.jpa.Model基类,将会使代码更加简洁:
- public void messages(int page) {
- User connectedUser = User.find("byEmail", connected()).first();
- List
messages = Message.find( - "user = ? and read = false order by date desc",
- connectedUser
- ).from(page * 10).fetch(10);
- render(connectedUser, messages);
- }
4.文件上传
直接上代码吧!
表单:
- #{form @uploadPhoto(), enctype:'multipart/form-data'}
- #{/}
Java代码
- public static void uploadPhoto(String title, File photo) {
- ...
- }
还能更简单吗?
当前题目:拯救Java程序猿的神器:PlayFramework
标题链接:http://www.csdahua.cn/qtweb/news28/312628.html
网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网