【问题标题】:Writing java codes in jsp(Spring Mvc)在jsp(Spring Mvc)中编写java代码
【发布时间】:2018-08-31 12:21:12
【问题描述】:

我是 Spring MVC 的新手。我需要在 jsp 中编写 java 代码(虽然这不是一个好习惯,但我没有其他选择)。 我的 Jsp 现在是这样的

          <c:forEach items="${dbEntries}" var="c" varStatus="loop">
                        <tr> 
                              <% 
                                  int i = 0;
                                  system.out.println(i);
                              %>
                              <td rowspan="1">${c.getRh_name()}</td>                                 
                              <td rowspan="1">${c.getIpm_name()}</td>` 
                        </tr>
          </c:forEach>

但它给出了一个错误“org.apache.jasper.JasperException: Unable to compile class for JSP:”。谁能帮忙??

包含的标题是

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib uri="http://www.springframework.org/tags/form"  prefix="spring"%>
<core:set var="contextPath" value="${pageContext.request.contextPath}"/>
<%@taglib  uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

完整的异常堆栈跟踪 堆栈跟踪: org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:103) org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:366) org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:490) org.apache.jasper.compiler.Compiler.compile(Compiler.java:379) org.apache.jasper.compiler.Compiler.compile(Compiler.java:354) org.apache.jasper.compiler.Compiler.compile(Compiler.java:341) org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:662) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:364) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339) javax.servlet.http.HttpServlet.service(HttpServlet.java:731) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:238) org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:262) org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1180) org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:950) org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852) org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882) org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778) javax.servlet.http.HttpServlet.service(HttpServlet.java:624) javax.servlet.http.HttpServlet.service(HttpServlet.java:731) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

【问题讨论】:

  • 发布您的完整异常堆栈跟踪。还要发布您在jsp中包含的标题
  • @ArpanDas 我现在已经编辑了帖子。
  • 系统必须大写System.out.println(i)
  • 感谢@GurkanYesilyurt。但它没有显示变量 i。你能帮我吗??
  • 如果你想使用scriptlet,你需要不断地关闭和打开&lt;% %&gt;标签。但是你最好只使用 JSTL/EL/Spring Tags 表达式来避免这种混合。 How to avoid

标签: jsp spring-mvc


【解决方案1】:

&lt;td&gt;${loop.count}&lt;/td&gt; 将返回您正在进行的迭代计数。就像 i+1 在 for 循环中 for(int i=0;i&lt;10;i++);

【讨论】:

    【解决方案2】:

    像这样在jsp中使用jstl代替java代码。

    <c:set var="salary" scope="session" value="${2000*2}" /> 
     <c:out value="${salary}" /> 
    <c:forEach begin="1" end="5" step="1">
         <c:set var="salary" value="${2000*2}" /> 
    </c:forEach> <c:out value="${salary}" />
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-15
      • 2020-02-03
      • 2022-07-03
      • 2014-09-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多