Properly use the predicate systems to generate the right HTTP
exceptions. This required some refactoring of the way the view
is turned into so we can reuse it.