0

こんにちは私はJSPにカスタムタグを持っています

<dc:drawMultiSelect
    availableLabel='<%=request.getAttribute("availableCoreColumn").toString()%>'
    selectedLabel='<%=request.getAttribute("selectedCoreColumns").toString()%>'
    availableCName="selectCol" 
    selectedCName="selectedCol"
    availableCId="select1" 
    selectedCId="select2" 
    sort="off"
    columnHelp="on" 
    helpURL='<%=((Map)request.getAttribute("constants")).get("WEB_CONTEXT").toString()%>/web/ABCGlossary.jsp'
    selectSize="8" 
    selectWidth="250px"
    selectMultiple="true"
    availableMap='<%=((HashMap) request.getAttribute("availableColMap"))%>'
    selectedMap='<%=((HashMap) request.getAttribute("selectedColMap"))%>'>

helpURL ='<%=((Map)request.getAttribute( "constants"))。get( "WEB_CONTEXT")。toString()%> / web / ABCGlossary.jsp'を除いて、正常に機能しています。

jspで変換されていないため、%=((Map)request.getAttribute( "constants"))。get( "WEB_CONTEXT")。toString()%>/web/ABCGlossary.jspのような出力が表示されます。

rtexprvalueを有効にする問題は何ですか?

4

1 に答える 1

2

これは、スクリプト式とリテラルを混在させる方法が原因である可能性が高く、JSp コンパイラを混乱させています。

これが JSP 2.0 以降の場合、次のように、スクリプトレットではなく EL 式を使用して、これをより読みやすくすることができます。

helpURL="${requestScope.constants.WEB_CONTEXT + '/web/ABCGlossary.jsp'}"

それができない場合は、helpURL の値を別の変数に割り当ててからタグで参照することで、作業が楽になります。

<% String helpURL = ((Map)request.getAttribute("constants")).get("WEB_CONTEXT").toString() + '/web/ABCGlossary.jsp' %>

helpURL='<%= helpURL  %>'
于 2009-07-03T08:38:01.177 に答える