Here’s the sample Stripes application using Scala.
The skeletal implementation of Stripes ActionBean for the purposes of our project holding the context:
package com.dimitrisli.scalastripeswebapp.controller
import net.sourceforge.stripes.action.{ActionBeanContext, ActionBean}
import reflect.BeanProperty
class BaseActionBean extends ActionBean {
@BeanProperty var context: ActionBeanContext = _
}
The calculator represented as a Stripe action bean:
package com.dimitrisli.scalastripeswebapp.controller
import net.sourceforge.stripes.action._
import net.sourceforge.stripes.validation.{SimpleError, ValidationErrors, ValidationMethod, Validate}
import reflect.BeanProperty
class CalculatorActionBean extends BaseActionBean {
@BeanProperty @Validate(required=true) var numberOne: Double = _
@BeanProperty @Validate(required=true) var numberTwo: Double = _
@BeanProperty var result: Double = _
@DefaultHandler
def addition: Resolution = {
result = getNumberOne + getNumberTwo
new ForwardResolution("/index.jsp");
}
def division: Resolution = {
result = getNumberOne / getNumberTwo
new ForwardResolution("/index.jsp");
}
@ValidationMethod(on=Array("division"))
def avoidDevideByZero(errors: ValidationErrors): Unit =
if (getNumberTwo == 0)
errors.add("numberTwo", new SimpleError("Dividing by zero is not allowed."))
}
Our view represented by a JSP will be excluded due to formatting issues in WordPress (look below for the Github repository).
The web.xml setting up the Stripe’s dispatcher servlet, filter and all the necessary mappings will also not be presented due to the same xml formatting issues (look below for the Github repository).
This project’s code can be found in this Github repository