JSP页面不适用于spring

时间:2017-06-10 03:28:02

标签: spring jsp spring-boot apache-tiles tiles-3

我使用spring-boot和mongoDb开发Apache Tiles 3的Web应用程序。使用<时出错form:form> < form:输入路径="名称"> 。但是当我使用<表格> <输入> 作为html标记,页面加载,不会发生错误。

我配置了Apache磁贴。是否有jsp的配置?这个错误让人头疼了好几天。以下代码仅提供页面的外观(为了方便,我删除了所有div标签和样式)。提前致谢

index.jsp

<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form" %>
<%@ page isELIgnored="false" %>

//some div tags for styles                    
<form:form action="/pulseBeatPro/save" method="POST" modelAttribute="employeeForm">

    //some div tags for styles  
    <form:input path="name" required="required" class="form-control col-md-7 col-xs-12" />

    <button type="submit" class="btn btn-success">Submit</button>
    //some div tags for styles  

</form:form>

tiles.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE tiles-definitions PUBLIC
  "-//Apache Software Foundation//DTD Tiles Configuration 3.0//EN" 
  "http://tiles.apache.org/dtds/tiles-config_3_0.dtd">

<tiles-definitions>

    <!-- Base Definition -->
    <definition name="base-definition" template="/WEB-INF/tiles/layout/defaultLayout.jsp">
        <put-attribute name="title" value="" />
        <put-attribute name="header" value="/WEB-INF/tiles/template/defaultHeader.jsp" />
        <put-attribute name="sidemenu" value="/WEB-INF/tiles/template/defaultMenu.jsp" />
        <put-attribute name="body" value="" />
        <put-attribute name="footer" value="/WEB-INF/tiles/template/defaultFooter.jsp" />
    </definition>

    <!-- Home Page -->
    <definition name="index" extends="base-definition">
        <put-attribute name="title" value="Welcome" />
        <put-attribute name="body" value="/WEB-INF/pages/index/index.jsp" />
    </definition>



</tiles-definitions> 

defaultLayout.jsp

<%@page import="com.fasterxml.jackson.annotation.JsonInclude.Include"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
//head title meta and other stuffs

</head>

<body class="nav-md">
    <section id="sidemenu"> <tiles:insertAttribute  name="sidemenu" /> </section>
    <header id="header"> <tiles:insertAttribute name="header" /></header>
    <section id="site-content"> <tiles:insertAttribute name="body" /> </section>
    <footer id="footer"> <tiles:insertAttribute name="footer" /></footer>
</body>
</html>

控制器

@RequestMapping(value = "/add", method = RequestMethod.GET)
    public ModelAndView add() {
        ModelAndView model = new ModelAndView("index");
        model.addObject("employeeForm", new Employee());

        return model;
    }


    @RequestMapping(value = "/save", method = RequestMethod.POST)
    public String save(@ModelAttribute("userForm") Employee employee) {
        if (employee.getEmpId() != null && !employee.getEmpId().trim().equals("")) {
            employeeService.update(employee);
        } else {
            employeeService.add(employee);
        }
        return "/";
    }

错误记录

org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.apache.tiles.request.render.CannotRenderException: java.io.IOException: JSPException including path '/WEB-INF/pages/index/index.jsp'.
    org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:982)
    org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:635)
    org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
Root Cause

org.apache.tiles.request.render.CannotRenderException: java.io.IOException: JSPException including path '/WEB-INF/pages/index/index.jsp'.
    org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:399)
    org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:238)
    org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:221)
    org.apache.tiles.renderer.DefinitionRenderer.render(DefinitionRenderer.java:59)
    org.springframework.web.servlet.view.tiles3.TilesView.renderMergedOutputModel(TilesView.java:132)
    org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:303)
    org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1282)
    org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1037)
    org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:980)
    org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:897)
    org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
    org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:635)
    org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
Root Cause

java.io.IOException: java.io.IOException: JSPException including path '/WEB-INF/pages/index/index.jsp'.
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:471)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    org.apache.tiles.request.servlet.ServletRequest.forward(ServletRequest.java:265)
    org.apache.tiles.request.servlet.ServletRequest.doForward(ServletRequest.java:228)
    org.apache.tiles.request.AbstractClientRequest.dispatch(AbstractClientRequest.java:57)
    org.apache.tiles.request.render.DispatchRenderer.render(DispatchRenderer.java:47)
    org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:259)
    org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:397)
    org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:238)
    org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:221)
    org.apache.tiles.renderer.DefinitionRenderer.render(DefinitionRenderer.java:59)
    org.springframework.web.servlet.view.tiles3.TilesView.renderMergedOutputModel(TilesView.java:132)
    org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:303)
    org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1282)
    org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1037)
    org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:980)
    org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:897)
    org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
    org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:635)
    org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
Root Cause

java.io.IOException: JSPException including path '/WEB-INF/pages/index/index.jsp'.
    org.apache.tiles.request.servlet.ServletUtil.wrapServletException(ServletUtil.java:63)
    org.apache.tiles.request.jsp.JspRequest.doInclude(JspRequest.java:125)
    org.apache.tiles.request.AbstractViewRequest.dispatch(AbstractViewRequest.java:47)
    org.apache.tiles.request.render.DispatchRenderer.render(DispatchRenderer.java:47)
    org.apache.tiles.request.render.ChainedDelegateRenderer.render(ChainedDelegateRenderer.java:68)
    org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:259)
    org.apache.tiles.template.InsertAttributeModel.renderAttribute(InsertAttributeModel.java:188)
    org.apache.tiles.template.InsertAttributeModel.execute(InsertAttributeModel.java:132)
    org.apache.tiles.jsp.taglib.InsertAttributeTag.doTag(InsertAttributeTag.java:299)
    org.apache.jsp.WEB_002dINF.tiles.layout.defaultLayout_jsp._jspx_meth_tiles_005finsertAttribute_005f2(defaultLayout_jsp.java:637)
    org.apache.jsp.WEB_002dINF.tiles.layout.defaultLayout_jsp._jspService(defaultLayout_jsp.java:223)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:443)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    org.apache.tiles.request.servlet.ServletRequest.forward(ServletRequest.java:265)
    org.apache.tiles.request.servlet.ServletRequest.doForward(ServletRequest.java:228)
    org.apache.tiles.request.AbstractClientRequest.dispatch(AbstractClientRequest.java:57)
    org.apache.tiles.request.render.DispatchRenderer.render(DispatchRenderer.java:47)
    org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:259)
    org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:397)
    org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:238)
    org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:221)
    org.apache.tiles.renderer.DefinitionRenderer.render(DefinitionRenderer.java:59)
    org.springframework.web.servlet.view.tiles3.TilesView.renderMergedOutputModel(TilesView.java:132)
    org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:303)
    org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1282)
    org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1037)
    org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:980)
    org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:897)
    org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
    org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:635)
    org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
Root Cause

org.apache.jasper.JasperException: /WEB-INF/pages/index/index.jsp (line: [54], column: [111]) equal symbol expected
    org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:41)
    org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:291)
    org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:97)
    org.apache.jasper.compiler.Parser.parseAttribute(Parser.java:233)
    org.apache.jasper.compiler.Parser.parseAttributes(Parser.java:169)
    org.apache.jasper.compiler.Parser.parseAttributes(Parser.java:160)
    org.apache.jasper.compiler.Parser.parseCustomTag(Parser.java:1254)
    org.apache.jasper.compiler.Parser.parseElements(Parser.java:1473)
    org.apache.jasper.compiler.Parser.parse(Parser.java:145)
    org.apache.jasper.compiler.ParserController.doParse(ParserController.java:244)
    org.apache.jasper.compiler.ParserController.parse(ParserController.java:105)
    org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:201)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:372)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:349)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:333)
    org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:600)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:368)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
    org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:895)
    org.apache.jasper.runtime.PageContextImpl.doInclude(PageContextImpl.java:679)
    org.apache.jasper.runtime.PageContextImpl.include(PageContextImpl.java:673)
    org.apache.tiles.request.jsp.JspRequest.doInclude(JspRequest.java:123)
    org.apache.tiles.request.AbstractViewRequest.dispatch(AbstractViewRequest.java:47)
    org.apache.tiles.request.render.DispatchRenderer.render(DispatchRenderer.java:47)
    org.apache.tiles.request.render.ChainedDelegateRenderer.render(ChainedDelegateRenderer.java:68)
    org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:259)
    org.apache.tiles.template.InsertAttributeModel.renderAttribute(InsertAttributeModel.java:188)
    org.apache.tiles.template.InsertAttributeModel.execute(InsertAttributeModel.java:132)
    org.apache.tiles.jsp.taglib.InsertAttributeTag.doTag(InsertAttributeTag.java:299)
    org.apache.jsp.WEB_002dINF.tiles.layout.defaultLayout_jsp._jspx_meth_tiles_005finsertAttribute_005f2(defaultLayout_jsp.java:637)
    org.apache.jsp.WEB_002dINF.tiles.layout.defaultLayout_jsp._jspService(defaultLayout_jsp.java:223)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:443)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    org.apache.tiles.request.servlet.ServletRequest.forward(ServletRequest.java:265)
    org.apache.tiles.request.servlet.ServletRequest.doForward(ServletRequest.java:228)
    org.apache.tiles.request.AbstractClientRequest.dispatch(AbstractClientRequest.java:57)
    org.apache.tiles.request.render.DispatchRenderer.render(DispatchRenderer.java:47)
    org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:259)
    org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:397)
    org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:238)
    org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:221)
    org.apache.tiles.renderer.DefinitionRenderer.render(DefinitionRenderer.java:59)
    org.springframework.web.servlet.view.tiles3.TilesView.renderMergedOutputModel(TilesView.java:132)
    org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:303)
    org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1282)
    org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1037)
    org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:980)
    org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:897)
    org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
    org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:635)
    org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
Note The full stack trace of the root cause is available in the server logs.

Jasper例外说&#34; org.apache.jasper.JasperException: /WEB-INF/pages/index/index.jsp (line: [54], column: [111]) equal symbol expected&#34;

但实际上第54行就像是

<form:form action="/pulseBeatPro/save" method="POST" id="demo-form2" data-parsley-validate class="form-horizontal form-label-left">

1 个答案:

答案 0 :(得分:0)

使用commandName而不是modelAttribute进行检查。 commandName是最早的。有时候你的东西会产生问题。