首先建立bean的時候,在serverlet中對映
protected void inithandlermethods()
//把所有的beannames的索引都返回來
string beannames = (this.detecthandlermethodsinancestorcontexts ?
//依據每個bean名字檢測handler進行註冊
for (string beanname : beannames)
} handlermethodsinitialized(gethandlermethods());
}
使用beanname來查詢handler
protected void detecthandlermethods(final object handler)
else
}});
for (method method : methods)
}
public static setselectmethods(final class<?> handlertype, final methodfilter handlermethodfilter)
handlertypes.addall(arrays.aslist(handlertype.getinte***ces()));
for (class<?> currenthandlertype : handlertypes)
}}, reflectionutils.user_declared_methods);
} return handlermethods;
}}
//將方法註冊到handlermethods中去
//原始碼中handlermethods的宣告
//private final maphandlermethods = new linkedhashmap();
//private final multivaluemapurlmap = new linkedmultivaluemap();
//對url做很特殊的對映,後來想想,有的時候同乙個url,可以對應多個引數的函式,所以需要linkedemultivaluemap
//對應的填充資料過程
//重新對method做封裝
handlermethod newhandlermethod = createhandlermethod(handler, method);
if (oldhandlermethod != null && !oldhandlermethod.equals(newhandlermethod))
//放到cache中,同時用於檢測是否用重複的對映
if (logger.isinfoenabled())
//for (string pattern : patterns)
} if (this.namingstrategy != null)
}
SpringMvc的Controller的返回值
controller方法返回值 指定返回到哪個頁面,指定返回到頁面的資料 1 modelandview modelandview.addobject itemlist list 指定返回頁面的資料 modelandview.setviewname itemlist 指定返回的頁面 2 string ...
springMVC的controller返回值
1.可以返回modelandview 2 可以返回乙個string字串 即乙個jsp頁面的邏輯檢視名,這個在springmvc.xml中可以配置此頁面邏輯檢視的字首和字尾 3 可以返回void型別 此時使用request.getrequestdispatcher 具體頁面的完整路徑 response...
springMVC的controller返回值
1.可以返回modelandview 2 可以返回乙個string字串 即乙個jsp頁面的邏輯檢視名,這個在springmvc.xml中可以配置此頁面邏輯檢視的字首和字尾 3 可以返回void型別 此時使用request.getrequestdispatcher 具體頁面的完整路徑 response...