黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專注Java教育14年 全國(guó)咨詢/投訴熱線:400-8080-105
動(dòng)力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁(yè) hot資訊 EL表達(dá)式取值的范圍

EL表達(dá)式取值的范圍

更新時(shí)間:2020-08-24 11:10:50 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽1463次


有些朋友對(duì)于EL表達(dá)式取值的范圍不是很了解,在Struts2中對(duì)request進(jìn)行了裝飾,增強(qiáng)了getAttribute()方法,改變了EL該方法的查找范圍,具體為,查找request域,不存在,查找值棧,不存在,查找ContextMap,還是不存在,則返回null。


EL表達(dá)式取值


因?yàn)?{對(duì)象名},會(huì)使用findAttribute的查找,其順序是page域->request域->session域->application域原理如下:


public class PageContext{


   //在page域中根據(jù)name獲取value
   public Object getAttribute(String name){
      return "找到了返回對(duì)象" | "沒(méi)找到返回null";
   }
   
   //從四個(gè)域中逐個(gè)搜索,只要在其中一個(gè)找到,就不再繼續(xù)尋找
   public Object findAttribute(String name){
      Object value = null;
      //搜page域
      value = this.getAttribute(name);
      if(value != null){
         return value;
      }
      //搜request域
      value = this.getRequest().getAttribute(name);
      if(value != null){return value;}//搜session域value = this.getSession().getAttribute(name);if(value != null){return value;}//搜a(bǔ)pplication域value = this.getServletContext().getAttribute(name);if(value != null){return value;}return value;}}


PS:由上述原因,Struts2對(duì)request進(jìn)行了裝飾,那么訪問(wèn)順序變?yōu)閜age域->request域->值棧->ContextMap->session->application。


如果還想深究源碼,可以參考ServletConfigInterceptor攔截器


public class ServletConfigInterceptor extends AbstractInterceptor implements StrutsStatics {
   private static final long serialVersionUID = 605261777858676638L;
   public String intercept(ActionInvocation invocation) throws Exception {
       final Object action = invocation.getAction();
       final ActionContext context = invocation.getInvocationContext();

       if (action instanceof ServletRequestAware) {
           HttpServletRequest request = (HttpServletRequest) context.get(HTTP_REQUEST);
           ((ServletRequestAware) action).setServletRequest(request);
       }

       if (action instanceof ServletResponseAware) {
           HttpServletResponse response = (HttpServletResponse) context.get(HTTP_RESPONSE);
           ((ServletResponseAware) action).setServletResponse(response);
       }

       if (action instanceof ParameterAware) {
           ((ParameterAware) action).setParameters((Map)context.getParameters());
       }

       if (action instanceof ApplicationAware) {
           ((ApplicationAware) action).setApplication(context.getApplication());
       }

       if (action instanceof SessionAware) {
           ((SessionAware) action).setSession(context.getSession());
       }

       if (action instanceof RequestAware) {
           ((RequestAware) action).setRequest((Map) context.get("request"));
       }

       if (action instanceof PrincipalAware) {
           HttpServletRequest request = (HttpServletRequest) context.get(HTTP_REQUEST);
           if(request != null) {
              // We are in servtlet environment, so principal information resides in HttpServletRequest
              ((PrincipalAware) action).setPrincipalProxy(new ServletPrincipalProxy(request));
           }
       }
       if (action instanceof ServletContextAware) {
           ServletContext servletContext = (ServletContext) context.get(SERVLET_CONTEXT);
           ((ServletContextAware) action).setServletContext(servletContext);
       }
       return invocation.invoke();
   }
}


以上就是動(dòng)力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)的小編針對(duì)“EL表達(dá)式取值的范圍”的內(nèi)容進(jìn)行的回答,希望對(duì)大家有所幫助,如有疑問(wèn),請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。


提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)

  • 全國(guó)校區(qū) 2025-05-15 搶座中
  • 全國(guó)校區(qū) 2025-06-05 搶座中
  • 全國(guó)校區(qū) 2025-06-26 搶座中
免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 亚洲国产精久久小蝌蚪 | 午夜精品视频在线观看 | 欧美性另类69xxxx极品 | 波多野结衣中文字幕在线视频 | 亚洲丁香网 | 欧美黄色免费网站 | 中日韩免费视频 | 欧美激情一区二区三区免费观看 | 成年网站免费视频黄 | 啪啪亚洲 | 亚洲三级欧美 | 青青草成人影院 | 91亚洲视频在线观看 | 久久综合狠狠综合久久综合88 | 国产视频福利在线 | 成人性视频在线三级 | 小明看片成人永久在线观看 | 8x成人永久在线观看视频 | 欧美精品在欧美一区二区 | 日韩欧美高清色码 | 欧美乱爱| 国产乱人视频在线看 | 国卡一卡二卡三免费网站 | 免费看黄视频网站 | 99久久网站| 大香伊人中文字幕精品 | 插插插www | 天天干夜夜爽天天操夜夜爽视频 | 欧美影片一区二区三区 | 涩爱tv | 亚洲三级在线 | 亚洲黄色三级 | 亚洲精品一二区 | 高h猛烈做哭bl壮汉受欧美 | 最近最新中文字幕免费大全3 | 成年视频在线 | 直接看的黄色网址 | 热99re久久精品2久久久 | 在线免费国产视频 | 欧美国产成人一区二区三区 | 国产精品成人观看视频网站 |