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");
 | ||
|  |     }
 | ||
|  | }
 |