modelに設定するUtility

前述のClickServletについては
変更したらちゃんとweb.xmlのServletMapping変更すること。

Utility化するとこんな感じ?

使い方

 public void onRender() {
  ClickPageUtil.addModelByAccessiblePageParameters(this);
 }

public class ClickPageUtil {
 public static void addModelByAccessiblePageParameters(Page page) {
  final Map model = page.getModel();
  
  Method[] methods = page.getClass().getMethods();
  for (int i = 0; i < methods.length; i++) {
   if (methods[i].getReturnType() != Void.TYPE
     && methods[i].getParameterTypes().length == 0) {
    String methodName = methods[i].getName();
    try {
     String param = null;
     if (methodName.startsWith("get")) {
      param = createParamNameByMethodName(methodName,
        "get");
     } else if (methodName.startsWith("is")) {
      param = createParamNameByMethodName(methodName, "is");
     }
     Object object = methods[i].invoke(page, null);
     if(param != null) {
      model.put(param, object);
     }
    } catch (Exception e) {
     e.printStackTrace();
    }
   }
  }
 }
 public static String createParamNameByMethodName(String methodName, String suffix) {
  String paramName = methodName.substring(suffix.length());
  String first = paramName.substring(0, 1);
  paramName = paramName.replace(paramName.charAt(0), first.toLowerCase()
    .toCharArray()[0]);
  return paramName;
 }

引数はPage固定ではなく、パラメータ変えて、
Objectと、Mapを渡すようにして、
汎用的にしてもいいかもしれません。
その方がテストしやすいし。
もちろんcommons使えるならそれ利用する方が確実ですね