2014-09-04 5 views
0

Я пытаюсь отобразить случайное число на панели через панель PrimeFaces. У меня есть следующий xhtml код:Управляемый компонент неконфигурирован

<h:form> 
    <p:growl id="msgs" showDetail="true" /> 
    <p:panel id="basic" header="Random Number" style="margin-bottom:20px"> 
     <h:panelGrid columns="2" cellpadding="10"> 
      <h:outputText value="#{randomnum.number}" /> 
     </h:panelGrid> 
    </p:panel> 
</h:form> 

Эта панель вызывает randomnum.number которая подобна этой

import java.io.Serializable; 
import java.util.Random; 

import javax.annotation.PostConstruct; 
import javax.faces.bean.ManagedBean; 
import javax.faces.bean.RequestScoped; 

@ManagedBean 
@RequestScoped 

public class randomnum implements Serializable { 

    private int number; 
    public randomnum() {    
    }  

    public int getNumber() {    
     return number; 
    } 

    @PostConstruct 
    public void init() { 
     Random r = new Random(); 
     int Low = 10; 
     int High = 100; 
     number = r.nextInt(High-Low) + Low; 
     System.out.println("Random Number :"+number); 
    }  
} 

Но когда я запускаю мой xhtml код, я вижу панель, но я не вижу ничего внутри него. Кроме того, вывод System.out.println() не отображается на консоли. Как решить проблему? Моя основная цель заключается в том, что когда я запускаю код xhtml, на панели должно отображаться случайное число.

ответ

1

Решение использовать класс с именем правильно в соответствии с Конвенциями Java Код: http://www.oracle.com/technetwork/java/codeconventions-135099.html

Tl; Dr: Переименовать класс "randomnum" в "Randomnum".

Таким образом, JSF найдет Bean, создаст его экземпляр, вызовет @PostConstruct и отобразит значение.

Смежные вопросы