我们必须使用一些标记库、JSF 等来创建丰富的 Web UI,这是 Velocity 模板无法做到的。
使用Facelets而不是 JSP。它不仅提供了比 JSP 更好的模板可能性,而且还可以直接从类路径提供 Facelet 文件。假设您仍在使用 JSF 1.x(因为 JSF 2.x默认使用Facelets 而不是 JSP,并且确实没有理由更喜欢 JSP 而不是 Facelets),那么您可以启用从 JAR 提供 Facelets,如下所示:
import com.sun.facelets.impl.DefaultResourceResolver;
public class CustomResourceResolver extends DefaultResourceResolver {
@Override
public URL resolveUrl(String resource) {
URL url = super.resolveUrl(resource);
if (url == null) {
if (resource.startsWith("/")) {
resource = resource.substring(1);
}
url = Thread.currentThread().getContextClassLoader().getResource(resource);
}
return url;
}
}
您在以下位置注册web.xml
:
<context-param>
<param-name>facelets.RESOURCE_RESOLVER</param-name>
<param-value>com.example.CustomResourceResolver</param-value>
</context-param>
要了解有关 Facelets 的更多信息,请从这份出色的开发人员文档开始。