Boa tarde amigos,
Estou com a essa dúvida a mais de um dia e ainda não consegui encontrar a solução para este maldito problema. Estou implementando um sistema WEB para a empresa que trabalho utilizando Struts2. E agora me deparei com o seguinte problema: Em uma determinada tela eu gero um JSON que é enviado via AJAX e deve ser enviado para o Server, que deveria popular essa informação em algum List para enfim seguir com o fluxo normal do programa.
O problema e que a Action é requisitada, porém o meu List não é populado!!
Vocês poderiam me ajudar, pelo amor de Jha!, digo por favor…
[color=red]Minha Action[/color]
[code]@ParentPackage(value = “json-default”)
public class ParamsAction extends ActionSupport {
private static final long serialVersionUID = 1L;
private List<ParamsVO> listParam;
private ArrayList<ParamsVO> updateParam;
@Action(value = "setParam", results =
{ @Result(name="ok", type="httpheader", params = {"status", "200"}) })
public void setParam() {
try {
ParamsBO.getInstance().updateParams(listParam);
} catch (BusinessObjectException e) {
}
}
@Action(value = "getParam", results = @Result(name = "parametros", type = "json", params = {
"includeProperties","listParam.*", "noCache", "true" }))
public String getParam() {
this.listParam = new ArrayList<ParamsVO>();
try {
this.listParam = ParamsBO.getInstance().getParams();
} catch (BusinessObjectException e) {
return null;
}
return "parametros";
}
public List<ParamsVO> getListParam() {
return listParam;
}
public void setListParam(List<ParamsVO> listParam) {
this.listParam = listParam;
}
public ArrayList<ParamsVO> getUpdateParam() {
return updateParam;
}
public void setUpdateParam( ArrayList<ParamsVO> updateParam) {
this.updateParam = updateParam;
}
}[/code]
[color=red]Meu .js[/color]
[code]update : function(){
data = {'updateParam':
[{'id':1, 'val': $('select#inp1').val()},
{'id':2, 'val': $("input:radio['name=inp2']:checked").val()},
{'id':3, 'val': $('select#inp3').val()},
{'id':4, 'val': $("input:radio['name=inp4']:checked").val()},
{'id':5, 'val': $("input:radio['name=inp5']:checked").val(),}]};
$.ajax({
url : setURL,
beforeSend : function(req) {
req.setRequestHeader('Authorization', __utils.make_basic_auth('sfa','12345678'));
},
type : 'POST',
data: data,
success : function(data) {
},
error : function(data) {
}
});
},[/code]