Iniciante Java + JasperReport + Ireport

Pessoal, bom dia, preciso muito da ajuda de voces.

estou iniciando a carreira de programação e escolhi logo java para comecar, tenho algumas duvidas, mas agora seria sobre o jasperreport + irreport

tenho a seguinte classe:

public class teste {   
public void montaRelatorio(Mensalidade mensalidade){     
    try{     
        HashMap<String, String> atributosRecibo = new HashMap<String, String>();     
             
        atributosRecibo.put("mesReferencia", mensalidade.getMesreferencia());   
           
        ArrayList<HashMap<String, String>> recibos = new ArrayList<HashMap<String, String>>();       
        recibos.add(atributosRecibo);   
             
           
           
        JRMapCollectionDataSource collection = new JRMapCollectionDataSource(recibos);     
             
   JasperPrint relatorio = JasperFillManager.fillReport("/home/leandro/recibo.jasper", new HashMap(), collection);     
        JasperExportManager.exportReportToPdfFile(relatorio, "/home/leandro/ReciboTeste.pdf");       
             
        java.awt.Desktop desktop = java.awt.Desktop.getDesktop();       
   desktop.open(new File("/home/leandro/ReciboTeste.pdf"));       
           
           
}catch (Exception e) {     
        e.printStackTrace();     
}     
}   
}  

achei na internet, modifiquei, mas nao funciona, eu consigo fazer um relatorio utilizando query sql diretamente no ireport, porem oq eu preciso para esse recibo seria, o cliente vai pagar a matricula em um jsp, ira fornecer o mes por exemplo que esta pagando, ai eu pegaria esse mes da seguinte forma:

atributosRecibo.put(“mesReferencia”, mensalidade.getMesreferencia());

porem minha dúvida é, como eu faria o arquivo recibo.jasper

eu teria que criar algum datasource no ireport? buscando dados de um sgbd eu consigo, porem de uma classe java nao sei oq fazer.
como eu colocaria o parametro mesReferencia no relatorio? diz field not set ou algo parecido
mudei para P{mesReferencia} e diz parameter not set ou algo parecido tb.

alguem poderia me ajudar? procurei tutoriais, procurei no forum, e oq acho é somente sobre as classes java, como passar collection etc, mas nao achei nada explicando como criar o arquivo .jasper.

agradeço desde já.

pessoal, eu consegui criar o .jasper agora compilou
eu coloquei no ireport $P{mesReferencia}

ai eu tive que criar esse parametro na guia parameters, porem agora quando eu vou no jsp e digito o mes, e clico em ok da o seguinte erro:

java.lang.NullPointerException   
    at br.com.sistema.Classes.teste.montaRelatorio(teste.java:17)   
    at br.com.sistema.action.testeAction.execute(testeAction.java:20)   
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)   
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)   
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)   
    at java.lang.reflect.Method.invoke(Method.java:616)   
    at com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:452)   
    at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:291)   
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:254)   
    at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:176)   
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)   
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)  

no jsp eu coloquei assim:

<form id="cadastro" name="cadastro" method="post" action="teste" onSubmit="return validar();">   
  
    Mes de Referencia:   
    <label id="mensalidade.mesreferencia">   
      <select name="mensalidade.mesreferencia" size="1" id="mensalidade.mesreferencia">   
        <option>SELECIONE</option>   
        <option>JANEIRO</option>   
        <option>FEVEREIRO</option>   
        <option>MARÇO</option>   
        <option>ABRIL</option>   
        <option>MAIO</option>   
        <option>JUNHO</option>   
        <option>JULHO</option>   
        <option>AGOSTO</option>   
        <option>SETEMBRO</option>   
        <option>OUTUBRO</option>   
        <option>NOVEMBRO</option>   
        <option>DEZEMBRO</option>   
      </select>   
    </label>   
     
         
      <input type="submit" name="button" id="button" value="ok" />   
    </label>   
       
</form>  

poderiam me ajudar com essa?

ja resolvi essa parte, faltavam os getters and setters na action, como disse, sou iniciante :slight_smile:
agora no relatorio aparece tudo null alguem sabe oq poderia ser?

alguem poderia dar uma pista?