2014-11-06 53 views
0

为什么会有不同的结果?jsp useBean spring实例null

  1. 是控制器代码
  2. 是JSP:useBean的代码(.TAG文件)

我知道由弹簧产生一个实例可用throughresource。

谢谢你的帮助。

1)控制器

@Controller 
    @RequestMapping(value="/healthqna") 
    public class CounselController { 

     @Resource(name="counselDAO") 
     private CounselDAO counselDAO; 

     @RequestMapping(value="/list", method=RequestMethod.GET) 
     public string list() { 
      counselService.getList(); // **Working !!** 

     } 
    } 
  • public class HealthQnATodayTAG { 
    
        @Resource(name="counselDAO") 
        private CounselDAO counselDAO; 
    
        public HealthQnATodayTAG() { 
    
         counselService.getList(); // **Did Not Working !!** 
    
        } 
    } 
    
  • +0

    资源在施工对象后被注入。 – SMA 2014-11-06 12:34:29

    回答

    0

    您的自定义标签不是Spring管理豆等资源永远不会注射。您需要在控制器中加载Model属性,将其设置为具有所需范围的模型属性,然后:

    [1]将它作为参数传递给您的标记。

    <x:myTag list="${list}"/> 
    

    [2]让你的自定义标签延长javax.servlet.jsp.tagext.TagSupport,这将给你的PageContext中的引用,从中可以再拿到模型上的手柄属性。

    pageContext.getAttribute("list");