嗨,我在 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("常量")).get("WEB_CONTEXT").toString()%>/web/ABCGlossary.jsp
你能帮我看看它启用 rtexprvalue 的问题是什么吗
最佳答案
这可能取决于您混合脚本表达式和文字的方式,您混淆了 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 %>'
关于java - JSP中自定义标签的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1078110/