【问题标题】:ok method in PlayFrameworkPlayFramework 中的 ok 方法
【发布时间】:2016-10-30 14:19:33
【问题描述】:

我对 PlayFramework 中的 ok 方法有疑问。 我正在使用 play2.2.1。 假设没有视图文件,没有模型文件,只有控制器文件。 而代码是这样的:

package controllers;

import play.*;
import play.data.*;
import play.mvc.*;

import views.html.*;

import java.util.*;
import models.*;

import play.data.validation.Constraints.Required;

public class Application extends Controller {
    //Action correspoinding to root
    public static Result index() {
        return ok("This is test.");
    }
}

当我运行播放应用程序时,我可以得到一个非常简单的页面,只显示“这是测试。”。 我知道 PlayFramework 如何显示任何页面的基本机制。 在非常简单的情况下,用户具有特定页面的访问权限,并且通过以下信息“路由”显示选择了特定方法,并且在方法内,基本上 ok 方法呈现 Result 实例。 之后,实例的内容从控制器传递到视图,视图用于显示。 但是,在这种情况下,没有视图。 那么,框架是如何展示这个非常简单的页面的呢?

【问题讨论】:

    标签: playframework playframework-2.2


    【解决方案1】:

    我认为您假设网络浏览器需要 html 来显示某些内容。它没有,它也可以显示纯字符串,这就是您在此处看到的。一把小提琴:

    https://jsfiddle.net/fLxhyjtu/

    你也可以试试:

    ok("<h1>Hello World</h1>")
    

    毕竟,html 也只是一个字符串。

    【讨论】:

    • 感谢您的回答。再一次,没有查看文件。而当 PlayApplication 有任何视图文件时,视图文件会从控制器的类中接收到 Result 实例的内容,当然这与视图文件是对应的。 .然后视图可以显示一些东西。你说的我已经听懂了,但是很抱歉我不能很好地表达你的意思,我不明白我的问题与浏览器可以显示纯文本文件有关。
    • 某本指导书可能说ok方法以某物为参数,然后playapplication可以显示某物。同时,ok 方法可以取一个 html 文本。因此,如果 ok 方法可以获取一个 html 文件并读取它然后转换 html 文本,我们可以预先准备好 html 文件。在这种思路下,模板的概念就出来了。综上所述,我们有任何视图文件是特殊的,一切都通过我在这里写的上面的解释来理解。我说的对吗?
    【解决方案2】:

    Play 的控制器有多个覆盖版本的ok() 方法。当然还有badRequestnotFound等其他人。

    您可以从这里开始查看不同的方法:https://playframework.com/documentation/2.2.x/api/java/play/mvc/Results.html#ok()

    有一个有String参数,有一个JsonNode参数,有一个byte[]参数等等。

    注意play.mvc.Controller 扩展了play.mvc.Results,这实际上是定义方法的地方。

    然后您的浏览器就可以显示 HTML 或纯文本或其他内容。

    【讨论】:

    • 谢谢您的回答,请问机制如何?我知道 ok 方法可以将各种参数作为参数,浏览器可以显示纯文本以及 html 文件。
    • 某本指导书可能说ok方法以某物为参数,然后playapplication可以显示某物。同时,ok 方法可以取一个 html 文本。因此,如果 ok 方法可以获取一个 html 文件并读取它然后转换 html 文本,我们可以预先准备好 html 文件。在这种思路下,模板的概念就出来了。综上所述,我们有任何视图文件是特殊的,通过我在这里写的上面的解释,一切都明白了。我说的对吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-29
    • 2015-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多