<select  name="channelId" id="channelId" onchange="onChangeType()">
<c:when test="${channelId==1}"><option value="1" selected="selected">网址类型</option></c:when>
<c:otherwise><option value="1" >网址类型</option></c:otherwise>

<c:when test="${channelId==2}"><option value="2" selected="selected">图片</option></c:when>
<c:otherwise><option value="2" >图片</option></c:otherwise>

<c:when test="${channelId==3}"><option value="3" selected="selected">音频图片</option></c:when>
<c:otherwise><option value="3" >音频图片</option></c:otherwise>

<c:when test="${channelId==4}"><option value="4" selected="selected">视频广告</option></c:when>
<c:otherwise><option value="4" >视频广告</option></c:otherwise> </select>这段代码在jsp中报错了,呵呵,麻烦那位高手看看,指点指点谢谢了。
javax.servlet.jsp.JspTagException: Illegal use of &lt;when&gt;-style tag without &lt;choose&gt; as its direct parent
at org.apache.taglibs.standard.tag.common.core.WhenTagSupport.doStartTag(WhenTagSupport.java:66)
at org.apache.jsp.business.threestep_jsp._jspx_meth_c_005fwhen_005f0(threestep_jsp.java:957)
at org.apache.jsp.business.threestep_jsp._jspService(threestep_jsp.java:680)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:630)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
at org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:238)
at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:250)
at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1047)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:817)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:549)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.lingdong.util.AdminFilter.doFilter(AdminFilter.java:49)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
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:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)

解决方案 »

  1.   

    /c:choose/、/c:when/和/c:otherwise/标签的使用必须符合以下语法规则:
    c:when>和c:otherwise>不能单独使用,它们必须位于c:choose>父标签中。
    在c:choose>标签中可以包含一个或多个标签。
    在c:choose>标签中可以不包含c:otherwise>标签。
    在c:choose>标签中如果同时包含c:when>和c:otherwise>标签,那么c:otherwise>必须位于c:when>标签之后。
      

  2.   

        <select name="channelId" id="channelId" onchange="onChangeType()">
        <c:choose>
    <c:when test="${channelId==1}"><option value="1" selected="selected">@ta网址类型</option></c:when>
    <c:otherwise><option value="1" >网址类型</option></c:otherwise>
    </c:choose>
    <c:choose>
    <c:when test="${channelId==2}"><option value="2" selected="selected">图片</option></c:when>
    <c:otherwise><option value="2" >图片</option></c:otherwise>
    </c:choose>
    <c:choose>
    <c:when test="${channelId==3}"><option value="3" selected="selected">音频图片</option></c:when>
    <c:otherwise><option value="3" >音频图片</option></c:otherwise>
    </c:choose>
    <c:choose>
    <c:when test="${channelId==4}"><option value="4" selected="selected">视频广告</option></c:when>
    <c:otherwise><option value="4" >视频广告</option></c:otherwise> 
    </c:choose>
    </select>
    <c:when>不能单独使用要在<c:choose>下使用
      

  3.   

    楼上都说的对,如果还是出错,可能跟jstl的版本有关系了