Jquery ResourceDependency annotation 在 UI 中不起作用



我正在开发一个使用@Resourcedependendenty注释的jQuery的UIComponent,但是在控制台中,在Console中显示了这个"未介绍的ReferageError:$未定义";

Java代码:

@FacesComponent(value = "components.InputInditec", createTag = true, 
                   tagName = "InputInditec")
@ResourceDependencies({
    @ResourceDependency(library = "jquery", name = "jquery-203.js", target
            = "head")})
public class UiInputInditec extends UIComponentBase {
    @Override
    public String getFamily() {
        return "my.custom.component";
    }
    @Override
    public void encodeBegin(FacesContext context) throws IOException {
        String value = (String) getAttributes().get("value");
        String clientId = getClientId(context);
        ResponseWriter writer = context.getResponseWriter();
        writer.startElement("input", this);
        writer.writeAttribute("id", clientId + "edit", "id");
        if (value != null) {
            writer.writeAttribute("value", value.toUpperCase(), "value");
        }
        writer.endElement("input");
        writer.startElement("script", this);
        writer.writeAttribute("type", "text/javascript", null);
        writer.write("$("#" + clientId + "edit" + "").keypress(function() { "
                + "console.log( 'Handler for .keypress() called.' ); });");
        writer.endElement("script");
    }
}

有人知道发生了什么事吗?

@ResourceDependency声明,

@ResourceDependency(library="jquery", name="jquery-203.js", target="head")

期望JS文件完全处于以下位置:

网页内容|  -  meta-inf|  -  Web-Inf|  - 资源|`-jQuery|`-JQuery-203.js:

确保这是真的。在浏览器中拉动页面时,执行右键单击, view source ,以便看到JSF生成的HTML输出,请确保您在生成的<script>元素中看到了混凝土/javax.faces.resource url RES_NOT_FOUND URL,该URL表明无法根据给定库和名称解决物理JS资源。

最新更新