代码之家  ›  专栏  ›  技术社区  ›  Rahul Garg

jsp中的自定义标记问题

  •  0
  • Rahul Garg  · 技术社区  · 17 年前

    嗨,我在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

    你能帮我一个问题吗?

    1 回复  |  直到 17 年前
        1
  •  2
  •   skaffman    17 年前

    这可能是由于混合了脚本表达式和文本,从而混淆了jsp编译器。

    如果这是JSP 2或更高,您可以通过使用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  %>'