我是新來的Java遊戲,並正在與2.2.6版本的工作,因爲我是在Windows機器上,並無法獲得最新版本正常工作。的Java遊戲2.2.6:index.scala.html更新controller.Application
我正在學習2.2.6版本的教程,here,並且在教程中大約三分之二的位置出現了「渲染第一頁」部分的問題。
本教程演示瞭如何做一個簡單的,其中有一個表格,用戶可以提交「做」項目,然後出現在屏幕上,並刪除它們的Java播放「待辦事項」應用程序。
在「渲染的第一頁,」教程指導用戶將以下代碼添加到控制器「Application.java」:
public static Result tasks(){
return ok(views.html.index.render(models.Task.all(), taskForm);
}
所以,在這一點上,我Application.java樣子這樣的:
package controllers;
import java.util.ArrayList;
import java.util.List;
import com.sun.javafx.tk.Toolkit.Task;
import play.*;
import play.mvc.*;
import play.data.*;
import models.*;
import views.html.*;
public class Application extends Controller {
static Form<Task> taskForm = Form.form(Task.class);
public static Result index() {
return ok("Hello World");
}
public static Result tasks() {
return ok(
views.html.index.render(models.Tasks.all(), taskForm)
);
}
public static Result newTask() {
return TODO;
}
public static Result deleteTask(Long id) {
return TODO;
}
}
的Eclipse立即強調單詞「渲染」爲紅色,我得到以下錯誤,當我在它懸停:「在類型索引的方法渲染(字符串)是不適用的參數(列表,表)」
教程把我創建一個名爲Task.java模型,如果你看一下Application.java的頂部,它也有我「進口com.sun.javafx.tk.Toolkit.Task,」這我不真的很確定它做了什麼。
這裏是我的模型,Task.java:
package models;
import java.util.*;
import play.data.validation.Constraints.*;
public class Task {
public Long id;
@Required
public String label;
public static List<Task> all(){
return new ArrayList<Task>();
}
public static void create(Task task){
}
public static void delete(Long id){
}
}
因此,所有這樣說,這就是我認爲這個問題是:
「渲染」 的參數(S)是/是在視圖「index.scala.html」規定,在斯卡拉
當您第一次使用Java創建遊戲空白的Java應用程序,它自動填充index.scala.html與下面的代碼行:
@(message: String)
@main("Welcome to Play") {
@play20.welcome(message, style = "Java")
}
的教程讓我從index.scala.html,這就像我說的是一個視圖中刪除了這一切,並有我這個代碼替換它:
@(tasks: List[Task], taskForm: Form[Task])
@import helper._
@main("Todo list") {
<h1>@tasks.size() task(s)</h1>
<ul>
@for(task <- tasks) {
<li>
@task.label
@form(routes.Application.deleteTask(task.id)) {
<input type="submit" value="Delete">
}
</li>
}
</ul>
<h2>Add a new task</h2>
@form(routes.Application.newTask()) {
@inputText(taskForm("label"))
<input type="submit" value="Create">
}
}
現在,指數的第一行.scala.html告訴控制器「呈現」需要什麼參數。正如你所看到的,當你製作一個空白的Java Play應用程序時,它開始是@(message:String)。我將它改爲@(tasks:List [Task],taskForm [Task])。所以它應該知道那些是「渲染」應該採取的參數。但由於某種原因,它仍然認爲「渲染」應該採取一個字符串,並給我一個錯誤。
我已經沖刷了好幾個小時的互聯網,並試圖已張貼自己的問題之前已經提出了許多解決方案。
這裏的一些事情,我已經試過:
這些行添加到build.sbt(用空格之間):
EclipseKeys.projectFlavor:= EclipseProjectFlavor。爪哇
EclipseKeys.preTasks:= SEQ(編譯編譯)
,然後收出蝕。從我項目目錄中的命令行運行「play clean-all」「play compile」「play eclipse」,然後將項目重新導入到eclipse中。
刷新在eclipse
忽略錯誤並運行「玩調試運行」,然後將本地主機的一切:9000(一個人說,這發生在他們身上和他們恰恰忽略了錯誤的IDE和它的工作在服務器上的罰款),而是我剛剛在本地主機同樣的錯誤,因爲我在Eclipse了,這是我屏幕shotted:
在這一點上,我不知道如何繼續。我最好的猜測就像我說的那樣,問題是應用程序出於某種原因不知道我更新了「index.scala.html」,從而更改了「渲染」所需的參數,但我不知道爲什麼它不會「知道」它。
對不起,這是如此之久;我想確保我包括了一切。
如果有人有任何想法,將是偉大的,謝謝。
在您的控制器
如果新玩起來更好,開始使用最新版本2.6 – cchantep