69 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
			
		
		
	
	
			69 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
| package controllers;
 | |
| 
 | |
| import play.libs.concurrent.HttpExecutionContext;
 | |
| import play.mvc.*;
 | |
| import play.twirl.api.Html;
 | |
| 
 | |
| import javax.inject.Inject;
 | |
| import java.util.concurrent.CompletionStage;
 | |
| 
 | |
| import static java.util.concurrent.CompletableFuture.supplyAsync;
 | |
| 
 | |
| /**
 | |
|  * This controller contains an action to handle HTTP requests
 | |
|  * to the application's home page.
 | |
|  */
 | |
| public class HomeController extends Controller {
 | |
|     private HttpExecutionContext ec;
 | |
| 
 | |
|     @Inject
 | |
|     public HomeController(HttpExecutionContext ec) {
 | |
|         this.ec = ec;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * An action that renders an HTML page with a welcome message.
 | |
|      * The configuration in the <code>routes</code> file means that
 | |
|      * this method will be called when the application receives a
 | |
|      * <code>GET</code> request with a path of <code>/</code>.
 | |
|      */
 | |
|     public Result index() {
 | |
|         return ok(views.html.index.render());
 | |
|     }
 | |
| 
 | |
|     public Result applyHtml() {
 | |
|         return ok(Html.apply("<h1>This text will appear as a heading 1</h1>"));
 | |
|     }
 | |
| 
 | |
|     public Result badRequestPage() {
 | |
|         return badRequest("Your request data has issues.");
 | |
|     }
 | |
| 
 | |
|     public Result notFoundPage() {
 | |
|         return notFound("Could not find the page you requested.");
 | |
|     }
 | |
| 
 | |
|     public Result customContentType() {
 | |
|         return ok("This is some text content").as("text/html");
 | |
|     }
 | |
| 
 | |
|     public CompletionStage<Result> asyncOperation() {
 | |
|         return supplyAsync(() -> {
 | |
|             return longRunningTask();
 | |
|         }, ec.current())
 | |
|                 .thenApplyAsync(s -> {
 | |
|                     return ok("Got result -> " + s);
 | |
|                 }, ec.current());
 | |
|     }
 | |
| 
 | |
|     private String longRunningTask() {
 | |
|         return "Long running task has completed";
 | |
|     }
 | |
| 
 | |
|     public Result setHeaders() {
 | |
|         return ok("This is some text content")
 | |
|                 .as("text/html")
 | |
|                 .withHeader("Header-Key", "Some value");
 | |
|     }
 | |
| }
 |