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

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 exception
org.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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值