searchn Nakedpublicprancing s The ; Nakedpublicprancing ns Membership ;searchnssearch;Ô¾ Membership  Nakedpublicprancing » The õsearchnbp The & The b The p Nakedpublicprancing |searchn Nakedpublicprancing s Membership ;&searchbsearchp The ¹Ø±Õ

04rjgchyqµÄ²©¿Í

08cshyq

µ¼º½

 
 
 
 
 

ÈÕÖ¾

 
 

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)| ÒýÓà (0) |¾Ù±¨
 

ÀúÊ·ÉϵĽñÌì

Ïà¹ØÎÄÕÂ

×î½ü¶ÁÕß

ÆÀÂÛ

<#--×îÐÂÈÕÖ¾£¬Èº²©ÈÕÖ¾--> <#--ÍÆ¼öÈÕÖ¾--> <#--ÒýÓüǼ--> <#--²©Ö÷ÍÆ¼ö-->