RequestMapper.java 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. package hellowicket;
  2. import org.apache.wicket.core.request.handler.PageProvider;
  3. import org.apache.wicket.core.request.handler.RenderPageRequestHandler;
  4. import org.apache.wicket.request.IRequestHandler;
  5. import org.apache.wicket.request.IRequestMapper;
  6. import org.apache.wicket.request.Request;
  7. import org.apache.wicket.request.Url;
  8. import org.apache.wicket.request.handler.resource.ResourceReferenceRequestHandler;
  9. import hellowicket.dbupdates.HelloDbUpdatesReference;
  10. import hellowicket.fortune.FortunePage;
  11. import hellowicket.plaintext.HelloTextReference;
  12. /**
  13. * Custom request mapper optimized for the application needs
  14. */
  15. public class RequestMapper implements IRequestMapper {
  16. private static final Url FORTUNES_URL = Url.parse("fortunes");
  17. @Override
  18. public IRequestHandler mapRequest(final Request request) {
  19. final String url = request.getUrl().getPath();
  20. switch (url) {
  21. case "json":
  22. return new ResourceReferenceRequestHandler(new HelloJsonReference());
  23. case "db":
  24. return new ResourceReferenceRequestHandler(new HelloDbReference());
  25. case "updates":
  26. return new ResourceReferenceRequestHandler(new HelloDbUpdatesReference());
  27. case "plaintext":
  28. return new ResourceReferenceRequestHandler(new HelloTextReference());
  29. case "fortunes":
  30. return new RenderPageRequestHandler(new PageProvider(FortunePage.class));
  31. default:
  32. }
  33. return null;
  34. }
  35. @Override
  36. public int getCompatibilityScore(final Request request) {
  37. return 0;
  38. }
  39. @Override
  40. public Url mapHandler(final IRequestHandler requestHandler) {
  41. return FORTUNES_URL;
  42. }
  43. }