Acho que esse cara resumiu bem essa discussão de milhares de posts.
A URL é: http://www.theserverside.com/articles/article.tss?l=WebWork2
E o que me chamou a atenção foi:
public class RegisterAction extends ActionSupport {
String username, email, firstname, lastname, password;
private User tempUser;
public String getUserName() {
return username;
}
public void setUserName(String username) {
this.username = username;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getFirstName() {
return firstname;
}
public void setFirstName(String firstname) {
this.firstname = firstname;
}
public String getLastName() {
return lastname;
}
public void setLastName(String lastname) {
this.lastname = lastname;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String execute() throws Exception {
if (hasErrors())
return INPUT;
else
{
tempUser = WebLogSystem.getUserStore().create(this.username,this.password );
tempUser.setFirstName(this.getFirstName());
tempUser.setLastName(this.getLastName());
tempUser.setEmail(this.getEmail());
tempUser.save();
return SUCCESS;
}
}
/**
* Do business logic validation by checking to see if the user entered is
* already in the database.
*/
public void validate()
{
LOG.info("Validating the registration page");
try{
if(WebLogSystem.getUserStore().verify(this.username))
{
this.addFieldError("Username", "Someone already has that name");
}
}
catch(Exception e)
{e.printStackTrace();
}
}
}