jsp useBean spring实例为null

时间:2014-11-06 12:31:27

标签: spring jsp javabeans

为什么会有不同的结果?

  1. 是控制器代码
  2. 是jsp:useBean代码(.tag文件)
  3. 我知道spring生成的实例可以通过资源获得。

    感谢您的帮助。

    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 !!**
    
             }
         }
    
    1. public class HealthQnATodayTAG {
      
          @Resource(name="counselDAO")
          private CounselDAO counselDAO;
      
          public HealthQnATodayTAG() {
      
               counselService.getList(); // **Did Not Working !!**
      
          }
      }
      

1 个答案:

答案 0 :(得分:0)

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

[1]将其作为参数传递给您的标签。

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

[2]让您的自定义标记扩展javax.servlet.jsp.tagext.TagSupport,它将为您提供对PageContext的引用,然后您可以从中获取Model属性的句柄。

pageContext.getAttribute("list");