2

私の知る限り、両方のタグが変数をタイルコンテキストからJSPにインポートするため、変数はJSPで表示されます。importAttributeとuseAttributeの違いを詳しく説明してください。

4

1 に答える 1

3

useAttributeどうやら、期待される変数のクラス名を指定できることを除いて、2つの間に違いはありません。

importAttributeタグのコードは次のとおりです。

@Override
public void doTag() throws JspException {
    JspContext jspContext = getJspContext();
    Map<String, Object> attributes = model.getImportedAttributes(JspUtil
            .getCurrentContainer(jspContext), name, toName, ignore,
            jspContext);
    int scopeId = JspUtil.getScope(scopeName);
    for (Map.Entry<String, Object> entry : attributes.entrySet()) {
        jspContext.setAttribute(entry.getKey(), entry.getValue(), scopeId);
    }
}

useAttributeおよびタグのコード:

@Override
public void doTag() throws JspException {
    JspContext pageContext = getJspContext();
    Map<String, Object> attributes = model.getImportedAttributes(JspUtil
            .getCurrentContainer(pageContext), name, id, ignore,
            pageContext);
    if (!attributes.isEmpty()) {
        int scopeId = JspUtil.getScope(scopeName);
        pageContext.setAttribute(getScriptingVariable(), attributes
                .values().iterator().next(), scopeId);
    }
}
于 2012-12-11T03:52:27.057 に答える