Ajuda Forms Struts

Bom dia,

Estou querendo utilizar meu form struts desta forma

class TesteForm extends ActionForm{

            Portage portage = new Portage() ;

public Portage getPortage() {
	return portage;
}

public void setPortage(Portage portage) {
	this.portage = portage;
}

}

public class Portage implements Serializable
{

private TruckDriver truckDriver;

Portage()
{
   this.truckDriver = new TruckDriver();
 }

public TruckDriver getTruckDriver()
{
    return truckDriver;
}

public void setTruckDriver(TruckDriver driver)
{
    truckDriver = driver;
}

}

public class TruckDriver
{

private String name;

public String getName()
{
    return name;
}

public void setName(String string)
{
    name = string;
}

}

Perguntas:

1- Sei que é possível utilizar na página JSP a referência para o atributo name de TruckDriver assim:
<html:text property=“portage.truckDriver.name”/>

Gostaria de saber se apesar de ser possível tal utilização, existe alguma “contra-indicação” nesta prática.

2 - Seria mais correto criar os objetos quando da declaração de suas referências, como em Portage portage = new Portage(), ou em seus respectivos construtores, ou usar os sets. No caso desta última, eu deveria usar os sets no construtor do form Struts assim:

class TesteForm extends ActionForm{

           Portage portage;;

           TesteForm()
           {
                
                this.setPortage(new Portage() );
                this.portage.setTruckDriver(new TruckDriver());
                
            }

public Portage getPortage() {
	return portage;
}

public void setPortage(Portage portage) {
	this.portage = portage;
}

}

Obrigado,

Adilson

1º - não vejo nenhum problema nisso. Mas talves vc pudesse criar métodos na Form para encapsular isso, entende? :wink:

2º - não crie os objetos na declaração nem no construtor, e altere seu método getPortage() para:

public Portage getPortage&#40;&#41;
&#123;
        if&#40;portage == null&#41;
        &#123;
                portage = new Portage&#40;&#41;;
        &#125;
        return portage;
&#125;