Controller對映的流程

2021-07-22 22:55:36 字數 1553 閱讀 8295

首先建立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...