2013-03-12 1 views
-1

Я имею странный конфликт при попытке использовать класс java.util.Properties в Play контроллере, необходимо учитывать следующее:Play Framework 2.1 - ошибки синтаксиса с использованием java.util.Properties в Play Controller

package controllers; 

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

public class Simple extends Controller { 

    Properties prop = new Properties(); 

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

} 

В Eclipse в SetProperty метод возвращает:

Синтаксис ошибка маркера (ов), неуместной конструкции (ов)

Синтаксис ошибки на лексем, удалять эти маркеры

Я думаю, что есть некоторый конфликт с этим кодом, находящимся в контроллере, те же две строки работают в простом Java-классе в пакете на заказ.

Любая помощь была бы очень признательна, я новичок. Играйте с опытом Java.

ответ

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 о class declaration и здесь около method declaration.

Я думаю, что вы пытаетесь выполнить код во время инициализации контроллера. Если я правильно помню, в Play 1.x это было возможно с помощью декоратора @OnApplicationStart (по методу). Я не уверен, что это все еще имеет место в Play 2.x.

Редактировать: С игрой 2.x вы делаете это с помощью Application global settings.

+1

Вы также можете сказать ему, почему. ;-) – alexvetter

+0

Вы правы @alexvetter. Я попытался немного улучшить ответ. :-) – dschulz

+0

Спасибо dschulz, я очень ценю ваш ответ, а также alexvetter за подсказку обоснования, имеет прекрасный смысл, надзор с моей стороны. Я думаю, что в Play 2.1 вы можете определить класс Global для загрузки кода. – user2162484