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 表达式而不是 scriptlet 使其更具可读性,如下所示:

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 回答