-1

Playコントローラでjava.util.Propertiesクラスを使用しようとすると、奇妙な種類の競合が発生します。次のことを考慮してください。

package controllers;

import play.mvc.*;
import java.util.*;

public class Simple extends Controller {

   Properties prop = new Properties();

   prop.setProperty("database", "localhost");

}

Eclipseでは、setPropertyメソッドは次を返します。

トークンの構文エラー、誤って配置された構成

トークンの構文エラー、これらのトークンを削除してください

このコードがコントローラー内にあることとの競合があると思います。同じ2行が、特注パッケージの単純なJavaクラスで機能します。

どんな助けでも大歓迎です、私はいくつかのJavaの経験を持つ新しいPlayです。

4

1 に答える 1

3

次の2行をメソッドブロック内に配置します。

import play.mvc.*;
import java.util.*;

public class Simple extends Controller {
    public static void pickABetterMethodName() { // Method 
       Properties prop = new Properties();
       prop.setProperty("database", "localhost");
    }
}

これにより、構文の問題が解決されます。その理由は、クラス宣言自体にメソッド宣言またはフィールド宣言ではないコードを含めることができないためです。動作はメソッドに実装されます。これがクラス宣言についてのJavaチュートリアルであり、ここでメソッド宣言についてです。

あなたがやろうとしているのは、コントローラーの初期化中にコードを実行することだと思います。私の記憶が正しければ、Play 1.xでは、これは@OnApplicationStartデコレータ(メソッド上)で可能でした。これがPlay2.xの場合でも当てはまるかどうかはわかりません。

編集:Play 2.xでは、アプリケーションのグローバル設定を使用してこれを行います。

于 2013-03-12T19:47:52.250 に答える