这篇文章将为大家详细讲解有关可以用Play做哪些很酷的事,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。绑定 HTTP 参数到 JAVA 方法参数用 Play 框架,在 Java 代码中获取
这篇文章将为大家详细讲解有关可以用Play做哪些很酷的事,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
绑定 HTTP 参数到 JAVA 方法参数
用 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<Article> 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 表单域使用复合的参数名:
<fORM action="/Directory/add" method="POST"> Name: <input type="text" name="p.name" /> Age: <input type="text" name="p.age" /> </form>
通过调用对应的 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 方法对应的页面的。
在任何模板文件中,你可以利用同样的语法生成链接:
<a href="@{Article.show(article.id)}">${article.title}</a>
将会生成以下 HTML 内容:
<a href="/articles/15">My new article</a>
不要重复地将 Java 对象传递到模板文件
在大多数的 Java 框架中,为了把 Java 对象传递到模板文件,通常你需要类似这样写:
Article article = Article.findById(id); User user = User.getConnected(); Map<String, Object> model = new HashMap<String,Object>(); 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<Message> 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'} <input type="text" name="title" /> <input type="file" id="photo" name="photo" /> <input type="submit" value="Send it..." /> #{/}
和这段 Java 代码:
public static void uploadPhoto(String title, File photo) { ... }
就完成了! 再简单不过了吧?
关于可以用Play做哪些很酷的事就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
--结束END--
本文标题: 可以用Play做哪些很酷的事
本文链接: https://lsjlt.com/news/288530.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0