启用 JSP 自定义标签库以使用 spring 服务 bean
Enable JSP Custom taglib to use spring service beans
我正在使用 Spring MVC 3.2.4(Spring Core 3.2.4)开发一个 Web 应用程序,后端使用 jpa 和 hibernate。目前正在使用 Tomcat v6.0 进行测试。
我创建了一个 JSP 自定义标签库(使用 jsp-api 2.1.1 & servlet-api 2.5),这是自定义查找下拉列表,我会给它查找类型,它会从数据库中获取此类型下的项目以呈现为列表中的项目。
自定义标签库 class 基本上类似于以下内容:
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 标签库将不受支持。
Spring 已经通过他们的标签库 http://docs.spring.io/spring/docs/current/spring-framework-reference/html/spring-form.tld.html#spring-form.tld.select
提供了我需要的东西
我正在使用 Spring MVC 3.2.4(Spring Core 3.2.4)开发一个 Web 应用程序,后端使用 jpa 和 hibernate。目前正在使用 Tomcat v6.0 进行测试。
我创建了一个 JSP 自定义标签库(使用 jsp-api 2.1.1 & servlet-api 2.5),这是自定义查找下拉列表,我会给它查找类型,它会从数据库中获取此类型下的项目以呈现为列表中的项目。
自定义标签库 class 基本上类似于以下内容:
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 标签库将不受支持。 Spring 已经通过他们的标签库 http://docs.spring.io/spring/docs/current/spring-framework-reference/html/spring-form.tld.html#spring-form.tld.select
提供了我需要的东西