struts2 namespace算法实现

来源:互联网 发布:三毛真相知乎 编辑:程序博客网 时间:2024/06/04 18:39
回答了我在迷你博客中的提的问题

这段代码中:config.getPackageConfigs方法的到配置的所有package bean信息,prefix是从servletPath中截取的index从0..lastIndex("/")之间的字符串。

(ns!=null&& prefix.startsWith(ns)):表明package中的namespace不为null且ns匹配namespace的开始部分
prefix.length()==ns.length() :表明ns.equals(prerix)
prefix.charAt(ns.length())=='/':表明prefixde在index=ns.length()地方的字符匹配为'/'

  1. if(ns.length()>namespace.length()) namespace=ns;表明取最长匹配(但最长也不会超过prefix的长度)
  2. for (Iterator i = config.getPackageConfigs().values().iterator(); i.hasNext();) {
  3.                 String ns = ((PackageConfig) i.next()).getNamespace();
  4.                 if (ns != null && prefix.startsWith(ns)
  5.                         && (prefix.length() == ns.length() || prefix.charAt(ns.length()) == '/')) {
  6.                     if (ns.length() > namespace.length()) {
  7.                         namespace = ns;
  8.                     }
  9.                 }
  10.             }

原创粉丝点击