É possível fazer um bind de form html para um objeto que é um @component ?
Tipo assim :
<form action="alguma action">
<input type="text" name="configuracao.valorQualquer" />
</form>
E a classe seria :
@Component
public class Configuracao {
private Environment env;
private String valorQualquer;
public Configuracao(Environment env){
this.env = env;
}
//get e set para valorQualquer
}
Creio que abordagem padrão não seria possível devido ao construtor…
A solução seria algo como um interceptor?
depende do que vc quer fazer… não dá pra fazer isso em um componente qualquer…
o jeito padrão seria criar um controller que recebe a requisição e muda o valor dentro do componente desejado.
Eu uso um controller que recebe esse componente tava querendo implementar um espécie de active record para salvar umas configurações…
aew ficaria mais ou menos assim:
@Resource
public class MeuController {
@Post("/configuracao")
public void salva(Configuracao configuracao){
configuracao.salva();
}
}
bom, do jeito que tá agora, ou o VRaptor injeta essa classe, ou ele popula com parâmetros da request, não dá pra fazer de uma vez só.
então vc faria algo do tipo receber a configuração no construtor, e outra configuração no método e copiar os dados de uma pra outra.
Então seria um sendo @Component e um sem?
não precisa ser duas classes, é só usar a mesma.
Pois é, mas o meu form está assim
<form action="alguma action">
<input type="text" name="configuracao.valorQualquer" value="${configuracao.valorQualquer}"/>
</form>
Por eu tá usando EL eu preciso de um construtor vazio certo?
Aew se eu colocar um construtor vazio o vraptor não sabe qual usar correto?
@Component
public class Configuracao {
private Environment env;
private String valorQualquer;
public Configuracao(){}
public Configuracao(Environment env){
this.env = env;
}
//get e set para valorQualquer
}
não é por vc estar usando EL, é pq o VRaptor dá new usando construtor sem argumento qdo tá populando os parâmetros.
bom, se forem poucas configurações, talvez seja melhor receber os parâmetro direto… senão talvez seja melhor extrair uma classe com os valores que podem ser editados.
Hummm…entendi…vlw aew Lucas