package net.sourceforge.stripes.examples.quickstart;
import net.sourceforge.stripes.action.ActionBean;
import net.sourceforge.stripes.action.ActionBeanContext;
import net.sourceforge.stripes.action.DefaultHandler;
import net.sourceforge.stripes.action.ForwardResolution;
import net.sourceforge.stripes.action.Resolution;
import net.sourceforge.stripes.examples.bugzooky.ext.Public;
import net.sourceforge.stripes.validation.SimpleError;
import net.sourceforge.stripes.validation.Validate;
import net.sourceforge.stripes.validation.ValidationErrors;
import net.sourceforge.stripes.validation.ValidationMethod;
/**
* A very simple calculator action.
* @author Tim Fennell
*/
@Public
public class CalculatorActionBean implements ActionBean {
private ActionBeanContext context;
@Validate(required=true) private double numberOne;
@Validate(required=true) private double numberTwo;
private double result;
public ActionBeanContext getContext() { return context; }
public void setContext(ActionBeanContext context) { this.context = context; }
public double getNumberOne() { return numberOne; }
public void setNumberOne(double numberOne) { this.numberOne = numberOne; }
public double getNumberTwo() { return numberTwo; }
public void setNumberTwo(double numberTwo) { this.numberTwo = numberTwo; }
public double getResult() { return result; }
public void setResult(double result) { this.result = result; }
/** An event handler method that adds number one to number two. */
@DefaultHandler
public Resolution addition() {
result = numberOne + numberTwo;
return new ForwardResolution("/quickstart/index.jsp");
}
/** An event handler method that divides number one by number two. */
public Resolution division() {
result = numberOne / numberTwo;
return new ForwardResolution("/quickstart/index.jsp");
}
/**
* An example of a custom validation that checks that division operations
* are not dividing by zero.
*/
@ValidationMethod(on="division")
public void avoidDivideByZero(ValidationErrors errors) {
if (this.numberTwo == 0) {
errors.add("numberTwo", new SimpleError("Dividing by zero is not allowed."));
}
}
}