Spring MVC 3.0 Annotation Controller²ÎÊý×¢Èë·ÖÎö
2011-01-18 20:41:20| ·ÖÀࣺ
Java
| ±êÇ©£º
|×ֺŴóÖÐС ¶©ÔÄ
Spring MVC 3 ÖÐControllerµÄд·¨±È½ÏÁé»î£¬²ÎÊý¸öÊýÒ²ÓÉÓû§ÐèÒª¶ø¶¨£¬±ÈÈ磺
@RequestMapping(value = "login")
public String test(HttpServletRequest request,HttpServletResponse response, ModelMap map) {}
public String test1(User u) {}
public String test2() {}
·ÖÎöÒ»ÏÂspringÔ´ÂëÖªµÀÔÚdoDispatchÖе÷ÓÃÁËinvokeHandlerMethod(request, response, handler)¡¾ÔÚHandlerMethodInvokerÀàÖС¿£¬Õâ¸ö·½·¨ÓÖµ÷ÓÃÁË
Object[] args = resolveHandlerArguments(handlerMethodToInvoke, handler, webRequest, implicitModel);
¸Ã·½·¨×¢ÈëÁËËùÓÐController·½·¨ÐèÒªµÄ²ÎÊý£¬ÏÈ»ñµÃController·½·¨µÄ²ÎÊýÀàÐÍ
È»ºóµ÷Óãº
protected Object resolveStandardArgument(Class parameterType, NativeWebRequest webRequest) throws Exception {}
else if (ServletResponse.class.isAssignableFrom(parameterType)) {}
else if (HttpSession.class.isAssignableFrom(parameterType)) {}
else if (Principal.class.isAssignableFrom(parameterType)) {}
else if (Locale.class.equals(parameterType)) {}
else if (InputStream.class.isAssignableFrom(parameterType)) {}
else if (Reader.class.isAssignableFrom(parameterType)) {}
else if (OutputStream.class.isAssignableFrom(parameterType)) {}
else if (Writer.class.isAssignableFrom(parameterType)) {}
return super.resolveStandardArgument(parameterType, webRequest);
}
Èç¹ûÆ¥Å䣬ÔòÖ±½Ó·µ»Ø²ÎÊý£¬Èç¹û²»Æ¥Å䣬return WebArgumentResolver.UNRESOLVED;¡¾Object UNRESOLVED = new Object();¡¿£¬È»ºó¼ÌÐøÕÒ£º
Class paramType = methodParam.getParameterType();
if (Model.class.isAssignableFrom(paramType) || Map.class.isAssignableFrom(paramType)) {}
else if (SessionStatus.class.isAssignableFrom(paramType)) {}
else if (Errors.class.isAssignableFrom(paramType)) {}
else if (BeanUtils.isSimpleProperty(paramType)) {}
else {}
Èç¹ûÆ¥Å䣬ÔòÖ±½Ó·µ»Ø²ÎÊý£¬Èç¹û²»Æ¥Å䣬¶ÔÆä½øÐвÎÊý×¢Èë¡£
ÔÚÕâ¸ö²ÎÊý×¢Èë¹ý³ÌÖУ¬ÓÐÀàËÆresolvePathVariable£¬resolveRequestParamµÈ·½·¨£¬Èç¹ûÊÇPOJOµÄ×¢È룬Ôòµ÷ÓÃ
resolveModelAttribute(attrName, methodParam, implicitModel, webRequest, handler);Õâ¸ö·½·¨×¢ÈëÊôÐÔÉú³ÉPOJO¡£
×îºóÓм¸µã×¢Ò⣺
1. Controller·½·¨µÄ²ÎÊýûÓÐ˳Ðò£¬¶¼¿ÉÒÔ±»×¢Èë
2, Èç¹û´úÂë
public String test(User u1, User u2) {}
ÄÇôu1ºÍu2ÊǶÔͬһ¸ö¶ÔÏóµÄÒýÓã¬Ò»Ä£Ò»Ñù
3.public String test(@RequestParam("a") String str, User u1) {}
ÕâÊÇstrºÍu1¶¼¿ÉÒԵõ½ÕýÈ·µÄÊôÐÔ
4.public String test( User u1, CopyOfUser cu) {}
×îÖÕÕâ2¸öʵÀý¶¼¿ÉÒԵõ½ÕýÈ·µÄÊôÐÔ£¬ËùÒÔÎÒÃÇ¿ÉÒÔÔÚController·½·¨µÄ²ÎÊýÀï¹¹Ô첻ͬµÄPOJOÀ´»ñµÃ²»Í¬µÄÊôÐÔ
5.@RequestParam(value="username")ĬÈÏΪÐèÒª£¬Èç¹ûÌá½»±íµ¥ÖÐûÓÐÕâ¸ö²ÎÊý£¨getParameterValues£©£¬»áraiseÒ»¸öÒì³££¬Õâ¸öÒì³£±»catch£¬server»á·µ»Ø400´íÎó.
6.POJO¶ÔÏóµÄ×¢Èë¿ÉÒÔǶÌס£
ÆÀÂÛÕâÕÅ
ת·¢ÖÁ΢²©
ת·¢ÖÁ΢²©
0ÈË |
·ÖÏíµ½£º
ÔĶÁ(802)|
ÆÀÂÛ()|
ÒýÓÃ (0)
|¾Ù±¨