2012-03-01 7 views
6

ho un Enum che ha certi campi, che ho bisogno di accedere nel mio play1.2.4 modellocome accedere ai campi Enum in modello play framework

public Enum WORKER{ 
    FARMER,SMITH,GARDENER 
} 

Supponiamo che ho bisogno di controllare se una variabile 'persona' nel template è un contadino, fabbro o giardiniere, come posso farlo?

#{if person.Type==WORKER.FARMER} 
    ...do something... 
#{/if} 

Qui vengo

NullPointerException : Cannot get property 'FARMER' on null object. 

Quindi, il modello non conoscere l'Enum WORKER.Since una nuova istanza non può essere creato per Enum, come devo fare l'Enum a disposizione del modello ?

+1

cosa è 'status'? il tuo enum si chiama 'WORKER' – talnicolas

+0

sorry..typo ... Ad ogni modo, lo capisco ... Mi mancava il prefisso del pacchetto –

+0

Che dire dell'astrazione di questo metodo? Ex. 'Worker.isFarmer()' – kdazzle

risposta

10

Utilizzare il nome della classe assoluta dell'enum nel modello. E.g. se la vostra enum WORKER è nel pacchetto model.myenums, il codice del modello sarebbe simile a questa:

#{if person.Type == model.myenums.WORKER.FARMER} 
    ...do something... 
#{/if}