Quero saber como vou usar o annotation ja que a interface modeldriven tirar os getters e setters da Action e tambem quando validar error retornar a pagina com campos que deram com os field jah preenchidos. minha Action:
package br.com.sisacras.actions;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.ServletActionContext;
import br.com.sisacras.base.BaseAction;
import br.com.sisacras.beans.BeanAbrangencia;
import br.com.sisacras.beans.BeanPolo;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ModelDriven;
import com.opensymphony.xwork2.Preparable;
import com.opensymphony.xwork2.validator.annotations.RequiredStringValidator;
import com.opensymphony.xwork2.validator.annotations.Validations;
public class PoloAction extends BaseAction implements ModelDriven<BeanPolo>{
private static final long serialVersionUID = 1L;
private BeanPolo polo = new BeanPolo();
private List<BeanPolo> poloList = new ArrayList<BeanPolo>();
private BeanAbrangencia abrangencia = new BeanAbrangencia();
private String bairro;
@Override
public BeanPolo getModel() {
return polo;
}
public BeanPolo getPolo() {
return polo;
}
public void setPoloList(List<BeanPolo> poloList) {
this.poloList = poloList;
}
public List<BeanPolo> getPoloList() {
return poloList;
}
public String list() {
services.setTable(BeanPolo.class, "polo");
poloList = services.listBeans();
return SUCCESS;
}
@Validations(
requiredStrings = {
@RequiredStringValidator(fieldName = "descPolo", message = "Nome do polo Obrigatorio.", trim = true),
@RequiredStringValidator(fieldName = "polo.end.rua", message = "Endereco do polo obrigatorio", trim = true),
@RequiredStringValidator(fieldName = "polo.end.numero", message = "")
}
)
public String inserir() {
services.saveBean(polo);
addActionMessage(polo.getDescPolo() + " incluido com sucesso!");
return SUCCESS;
}
public String mostrar() {
HttpServletRequest request = (HttpServletRequest) ActionContext
.getContext().get(ServletActionContext.HTTP_REQUEST);
int id = Integer.parseInt(request.getParameter("polo"));
services.setTable(BeanPolo.class, "polo");
polo = (BeanPolo) services.listBean(id);
return SUCCESS;
}
public String alterar() {
try {
services.updateBean(polo);
return SUCCESS;
} catch (Exception e) {
e.printStackTrace(System.out);
return ERROR;
}
}
public String delete() {
services.deleteBean(polo);
return SUCCESS;
}
public String addNovaAbragenia() {
HttpServletRequest request = (HttpServletRequest) ActionContext
.getContext().get(ServletActionContext.HTTP_REQUEST);
services.setTable(BeanPolo.class, "polo");
int id = Integer.parseInt(request.getParameter("id"));
polo = (BeanPolo) services.listBean(id);
abrangencia.setBairro(bairro);
polo.addAbrangencia(abrangencia);
return SUCCESS;
}
public String removerTodas() {
polo.getAbrangencias().removeAll(polo.getAbrangencias());
services.updateBean(polo);
return SUCCESS;
}
public String removerUnica() {
HttpServletRequest request = (HttpServletRequest) ActionContext
.getContext().get(ServletActionContext.HTTP_REQUEST);
int idAbragencia = Integer.parseInt(request.getParameter("idAbragencia"));
services.setTable(BeanAbrangencia.class, "BeanPolo");
polo.getAbrangencias().remove(services.listBean(idAbragencia));
services.updateBean(polo);
return SUCCESS;
}
public String getBairro() {
return bairro;
}
public void setBairro(String bairro) {
this.bairro = bairro;
}
}