绑定 HTTP 参数到 JAVA 方法参数
专注于为中小企业提供做网站、成都网站建设服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业桂东免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了1000多家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
用 Play 框架,在 Java 代码中获取 HTTP 请求参数是非常简单的,只需要声明方法的参数名和 HTTP 请求的参数名一样就可以了。
例如,这个请求:
- /articles/archive?date=08/01/08&page=2
把 date 和 page 声明为 Java 方法的传入参数,就可以获取 HTTP 请求中 date 和 page 参数的值了:
- public static void archive(Date date, Integer page) {
- List
articles = Articles.fromArchive(date, page); - render(articles);
- }
Play 框架会根据声明的 Java 参数类型,自动把 HTTP 请求参数转换成对应的 Java 对象。
这种自动绑定也适用于 任何的 Java 对象 。
- public class Person {
- public String name;
- public Integer age;
- }
一个简单的用于添加用户的控制器的 action 方法可以像这样:
- public static void add(Person p) {
- p.save();
- }
对应的 HTML 表单域使用复合的参数名:
- Name:
- Age:
通过调用对应的 Java 方法进行重定向
Play 没有等价于 Java Servlet forward 命令的方法,但是实现重定向确实非常简单。只需调用相应的 Java 方法,Play 就会自动生成正确的重定向( HTTP Redirect )响应给客户端。
- 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 方法对应的页面的。
在任何模板文件中,你可以利用同样的语法生成链接:
将会生成以下 HTML 内容:
不要重复地将 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);
然后你就可以从模板中获取相应的 Java 变量。这样剩下了不少重复无用的代码…
JPA 持久化
JPA 无疑是目前 Java 领域***的对象关系映射框架( ORM )。如果你熟悉 JPA,你会惊讶于它在 Play 框架中变得如此简单。不需要任何配置,Play 会自动启动 JPA 实体管理器,并在代码发生修改时自动地同步。
而且如果你使用 Play 提供的 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);
- }
简单易用的文件上传管理
在 Play 框架里文件上传管理非常简单。
以下 HTML 表单:
- #{form @uploadPhoto(), enctype:'multipart/form-data'}
- #{/}
和这段 Java 代码:
- public static void uploadPhoto(String title, File photo) {
- ...
- }
就完成了! 再简单不过了吧?
名称栏目:Play可以做的5件很酷的事
本文来源:http://www.gawzjz.com/qtweb2/news47/4297.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联