1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141
| package com.action;
import java.util.List;
import nl.captcha.Captcha;
import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Result;
import org.apache.struts2.interceptor.validation.SkipValidation;
import com.entity.ProjectEntity;
import com.exception.TechniqueException;
import com.service.PersonService;
import com.opensymphony.xwork2.Preparable;
import com.opensymphony.xwork2.validator.annotations.Validation;
import com.opensymphony.xwork2.validator.annotations.VisitorFieldValidator;
@Validation
public class ProjectAction extends BaseAction implements Preparable {
/**
*
*/
private static final long serialVersionUID = 5430460063723489974L;
private List<ProjectEntity> projects;
private PersonService personService;
private ProjectEntity newProject;
private Integer id;
private String captcha;
private boolean submit;
private boolean refresh;
public ProjectAction(PersonService personService) {
this.personService = personService;
}
@Override
public void prepare() throws Exception {
}
@SkipValidation
@Action(value="/listProjects", results={ @Result(type="tiles", location="/listProjects.tiles")})
public String execute() {
this.setProjects(this.personService.getProjects());
return SUCCESS;
}
@SkipValidation
@Action(value="/prepareAdd", results={ @Result(type="tiles", location="/prepareAdd.tiles")})
public String prepareAdd() {
this.setNewProject(new ProjectEntity());
return SUCCESS;
}
@Action(value="/addProject", results={ @Result(name="input", type="tiles", location="/addProject.tiles"),
@Result(name="prepareAdd", type="tiles", location="/prepareAdd.tiles")})
public String add() {
// Check captcha
Captcha captcha = (Captcha) super.getSession().getAttribute(Captcha.NAME);
if(captcha.isCorrect(getCaptcha())) {
System.out.println("captcha ok");
this.personService.saveProject(newProject);
this.addActionMessage("Un enregistrement effectué");
newProject = new ProjectEntity();
return INPUT;
}else {
return "prepareAdd";
}
}
@SkipValidation
@Action(value="/removeProject", results={ @Result( type="tiles", location="/listProjects.tiles"),
@Result(name="redirect", type="redirectAction", location = "listProjects") })
public String remove() {
try {
this.personService.deleteProject(id);
} catch (TechniqueException e) {
return ERROR;
}
return "redirect";
}
public List<ProjectEntity> getProjects() {
return projects;
}
public void setProjects(List<ProjectEntity> projects) {
this.projects = projects;
}
// don't provide message, it is supplied by
// annotations in Project class
@VisitorFieldValidator(message="*" )
public ProjectEntity getNewProject() {
return newProject;
}
public void setNewProject(ProjectEntity newProject) {
this.newProject = newProject;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getCaptcha() {
return captcha;
}
public void setCaptcha(String captcha) {
this.captcha = captcha;
}
public boolean isSubmit() {
return submit;
}
public void setSubmit(boolean submit) {
this.submit = submit;
}
public boolean isRefresh() {
return refresh;
}
public void setRefresh(boolean refresh) {
this.refresh = refresh;
}
} |
Partager