As Nasir said, you can respond with a NotFound action on any controller to return a 404 response. Usually we respond with Ok Action for a proper 200 Http response code. Example (play 2 - not sure if it works to play 1):
object BadgeEvidence extends Controller { def index(badgeName: String, earner: String) = Action { val badgeResponse = BadgeDao.getBadgeDetail(badgeName) val evidence = BadgeDao.getBadgeEvidence(badgeName, earner) if (evidence.length == 0) { NotFound(earner + " is not valid or has not earned " + badgeName); } else { badgeResponse match { case badgeDetail: BadgeRow => Ok(views.html.badgeEvidence(earner, badgeDetail, evidence)) case errorMessage: String => Ok(views.html.showError(errorMessage)) } } } }
source share