jsp 使用自定义标签时候错误

来源:互联网 发布:向日葵之夜 知乎 编辑:程序博客网 时间:2024/06/13 19:03

tag 文件:

<%@tag import="com.rockontrol.minerva.share.server.bean.device.DeviceBean"%><%@tag import="java.util.List"%><%@tag import="com.rockontrol.minerva.share.server.bean.app.AppInstanceBean"%><%@tag import="com.rockontrol.minerva.share.server.bean.monitor.ExtendedMonitorInfoBean"%><%@tag import="java.util.HashMap"%><%@tag import="java.util.Map"%><%@tag import="com.rockontrol.minerva.portals.web.util.ELHelper"%><%@tag pageEncoding="utf-8"%><%@include file="head.tag" %><%@tag import="com.rockontrol.minerva.portals.web.common.rk.conf.Column"%><%@tag import="com.rockontrol.minerva.portals.web.common.rk.conf.RkContainer"%><%@tag import="com.rockontrol.minerva.portals.web.common.rk.conf.RkConfig"%><%@ attribute name="id" required="true"%><%@ attribute name="detailId" required="true" %><%String fragmentId=id + "_detailHtml";RkConfig rkConfig = RkContainer.getConfig(id);String beanName = rkConfig.getBeanName();Map<String, Object> model = new HashMap<String, Object>();model.put(rkConfig.getBeanName(), request.getAttribute(beanName));model.put("detailId", detailId);List<ExtendedMonitorInfoBean> extendMonitorList=null;if(beanName.equals("appInstance")){extendMonitorList=((AppInstanceBean )request.getAttribute(beanName)).getExtendinfoitems();}if(beanName.equals("device")){extendMonitorList=((DeviceBean )request.getAttribute(beanName)).getExtendinfoitems();}%><rk:invoke fragmentId="<%=fragmentId %>" render="true" model="<%=model%>"> -- 自定义标签<c:set var="rk" value="<%=RkContainer.getConfig(id) %>"/><c:set var="beanName" value="${rk.beanName }"/>  <div class="tabdetail" id="\${detailId }"><table>    <thead><tr><th>名称</th><td>内容</td></tr></thead>      <%      if(extendMonitorList!=null && 0<extendMonitorList.size()){     for(int i=extendMonitorList.size();i>0;i--){     ExtendedMonitorInfoBean b=extendMonitorList.get(0);         %>       <tr><th><%= b.getName() %> </th>                           <td><p> <%=b.getValue() %></p></td>                           </tr>             <%           }    }         %>    <c:forEach items="<%=RkContainer.getConfig(id).getOpenListener().getOp().getColumns() %>" var="row">        <c:forEach items="${row }" var="column">        <c:if test="${column.show }">            <tr><th>${column.name }:</th><td><p>            <%--text --%>            <c:if test="${column.type == null || column.type=='text' || column.type=='textArea' }">\${((${beanName }.${column.id })!'')?html}</c:if>            <%--select --%>            <c:if test="${column.type=='select' }">            <c:forEach items="${column.selectMap}" var="item" >            <#if (${beanName }.${column.id })?? && ${beanName }.${column.id } == '${item.key}'>${(item.value)}</#if>            </c:forEach>            </c:if>            <%--dtSelect --%>            <c:if test="${column.type=='dtSelect' }">                \${((${beanName }.${column.dtSelect.initInput })!'')?html}            </c:if>            </p></td></tr>        </c:if>        </c:forEach>    </c:forEach></table></div></rk:invoke>


异常信息:

严重: Servlet.service() for servlet jsp threw exceptionorg.apache.jasper.JasperException: /WEB-INF/tags/rk/detailHtml.tag (line: 37, column: 5) Scripting elements ( <%!, <jsp:declaration, <%=, <jsp:expression, <%, <jsp:scriptlet ) are disallowed here.    at org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:42)    at org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:443)    at org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:89)    at org.apache.jasper.compiler.Parser.parseElementsScriptless(Parser.java:1488)    at org.apache.jasper.compiler.Parser.parseBody(Parser.java:1667)    at org.apache.jasper.compiler.Parser.parseOptionalBody(Parser.java:1002)    at org.apache.jasper.compiler.Parser.parseCustomTag(Parser.java:1274)    at org.apache.jasper.compiler.Parser.parseElements(Parser.java:1452)    at org.apache.jasper.compiler.Parser.parse(Parser.java:138)    at org.apache.jasper.compiler.ParserController.doParse(ParserController.java:242)    at org.apache.jasper.compiler.ParserController.parse(ParserController.java:102)    at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:198)    at org.apache.jasper.compiler.Compiler.compile(Compiler.java:373)    at org.apache.jasper.compiler.Compiler.compile(Compiler.java:353)    at org.apache.jasper.compiler.Compiler.compile(Compiler.java:340)    at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:646)    at org.apache.jasper.servlet.JspServletWrapper.loadTagFile(JspServletWrapper.java:240)    at org.apache.jasper.compiler.TagFileProcessor.loadTagFile(TagFileProcessor.java:578)    at org.apache.jasper.compiler.TagFileProcessor.access$000(TagFileProcessor.java:49)    at org.apache.jasper.compiler.TagFileProcessor$TagFileLoaderVisitor.visit(TagFileProcessor.java:655)    at org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1538)    at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2375)    at org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2427)    at org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2433)    at org.apache.jasper.compiler.Node$Root.accept(Node.java:474)    at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2375)    at org.apache.jasper.compiler.TagFileProcessor.loadTagFiles(TagFileProcessor.java:673)    at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:229)    at org.apache.jasper.compiler.Compiler.compile(Compiler.java:373)    at org.apache.jasper.compiler.Compiler.compile(Compiler.java:353)    at org.apache.jasper.compiler.Compiler.compile(Compiler.java:340)    at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:646)    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:357)    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)    at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:749)    at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:487)    at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:412)    at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:339)    at org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:238)    at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:262)    at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1180)    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:950)    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852)    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)    at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778)    at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)    at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)    at com.opensymphony.sitemesh.webapp.SiteMeshFilter.doFilter(SiteMeshFilter.java:65)    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:311)    at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:116)    at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)    at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)    at com.rockontrol.minerva.portals.web.common.web.RequestStartFilter.doFilter(RequestStartFilter.java:37)    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)    at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:101)    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)    at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113)    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)    at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)    at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45)    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)    at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:182)    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)    at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105)    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)    at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)    at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:173)    at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)    at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259)    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)    at com.rockontrol.minerva.portals.web.common.web.gzip.GZIPFilter.doFilter(GZIPFilter.java:30)    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)    at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)    at org.apache.catalina.filters.ExpiresFilter.doFilter(ExpiresFilter.java:1179)    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)

 错误原因  

异常提示的是该JSP自定义标签是Scriptless(不支持脚本),在该标签之间插入了如

 <%      if(extendMonitorList!=null && 0<extendMonitorList.size()){     for(int i=extendMonitorList.size();i>0;i--){     ExtendedMonitorInfoBean b=extendMonitorList.get(0);         %>
等JSP脚本就会出现如上异常,可以把JSP脚本换成JSTL、EL表达式 

 问题: 如何让其支持 后续。。。。

0 0