我正在使用 Spring MVC 3.2.4(也是 Spring Core 3.2.4)以及 jpa 和 hibernate 作为后端开发一个 Web 应用程序。目前使用Tomcat v6.0进行测试。
我有一个案例,当我创建一个 JSP 自定义标记库(使用 jsp-api 2.1.1 和 servlet-api 2.5)时,它是一个自定义查找下拉列表,我会给它查找类型,它会从数据库获取此类型下的项目以呈现为列表中的项目。
自定义 taglib 类基本上类似于以下内容:
public class LookupsTag extends SimpleTagSupport {
@Autowired
private static LookupService lookupService;
private String type;
public void doTag() throws JspException, IOException {
List<Lookup> items = lookupService.findByType(getType());
StringBuffer buff = new StringBuffer();
buff.append("<select>");
//...adding items...
buff.append("</select>");
getJspContext().getOut().write(buff.toString());
}
//getters and setters
}
我已经相应地创建了 tld 文件。
一旦我尝试使用此自定义标记查看页面,就会抛出 NullPointerException,因为在 doTag() 方法中,lookupService 实例为 null。
Spring似乎不支持自定义jsp标签。有没有办法解决这个问题,使服务实例自动连接?或者我缺少一些 Spring 配置要做?
谢谢
最佳答案
感谢 Alan Hay 的评论,自定义 jsp taglib 将不受支持。 Spring 已经通过他们的 taglib http://docs.spring.io/spring/docs/current/spring-framework-reference/html/spring-form.tld.html#spring-form.tld.select 提供了我需要的东西。
关于java - 启用 JSP 自定义 taglib 以使用 spring 服务 bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28304546/