code: public String getViewPath(String className, String methodName, String viewName) {
      if (Strings.isNotEmpty(viewName)) {
        if (viewName.charAt(0) == Constants.separator) { return viewName; }
      }
      Profile profile = profileServie.getProfile(className);
      if (null == profile) { throw new RuntimeException("no convention profile for " + className); }
      StringBuilder buf = new StringBuilder();
      if (profile.getViewPathStyle().equals(Constants.FULL_VIEWPATH)) {
        buf.append(Constants.separator);
        buf.append(profile.getFullPath(className));
      } else if (profile.getViewPathStyle().equals(Constants.SIMPLE_VIEWPATH)) {
        buf.append(profile.getViewPath());
        // 添加中缀路径
        buf.append(profile.getInfix(className));
      } else if (profile.getViewPathStyle().equals(Constants.SEO_VIEWPATH)) {
        buf.append(profile.getViewPath());
        buf.append(Strings.unCamel(profile.getInfix(className)));
      } else {
        throw new RuntimeException(profile.getViewPathStyle() + " was not supported");
      }
      // add method mapping path
      buf.append(Constants.separator);
      if (Strings.isEmpty(viewName) || viewName.equals("success")) {
        viewName = methodName;
      }
  
      if (null == methodViews.get(viewName)) {
        buf.append(viewName);
      } else {
        buf.append(methodViews.get(viewName));
      }
      return buf.toString();
    }
docs: 查询control对应的view的名字(没有后缀)
  
  @param className
  @param methodName
  @param viewName