我在 STS 中做了一个简单的 Roo 项目。它创建了几个 .jspx 文件,我猜是模板。我希望能够在其中添加一些 HTML 和 CSS,但是每当我更改任何重要的内容时,都会出现异常。例如,当我添加一些基本的 HTML 时:
<div><span><p>Hello</p></span></div>
我得到这个例外:
SEVERE: Servlet.service() for servlet [msa] in context with path [/msa] threw exception [Request processing failed; nested exception is org.apache.tiles.impl.CannotRenderException: ServletException including path '/WEB-INF/layouts/default.jspx'.] with root cause
org.apache.jasper.JasperException: /WEB-INF/views/homepage/index.jspx (line: 14, column: 6) The content of elements must consist of well-formed character data or markup.
或者假设我需要遍历从控制器获得的列表:
<c:forEach var="announcement" items="${results}">
<option value ="10"><c:out value="${announcement.author}"/></option>
</c:forEach>
然后我得到这个异常:
SEVERE: Servlet.service() for servlet [msa] in context with path [/msa] threw exception [Request processing failed; nested exception is org.apache.tiles.impl.CannotRenderException: ServletException including path '/WEB-INF/layouts/default.jspx'.] with root cause
org.apache.jasper.JasperException: /WEB-INF/views/homepage/index.jspx (line: 12, column: 54) The prefix "c" for element "c:forEach" is not bound.
我不确定为什么对这个模板文件进行简单的更改如此困难。经过一番搜索,我发现.jspx文件的语法与.jsp文件的语法不同,不建议手动编辑。如何将 Roo 配置为使用 .jsp 文件?这甚至可能吗?
编辑:这是整个文件的示例:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<div xmlns:jsp="http://java.sun.com/JSP/Page" xmlns:spring="http://www.springframework.org/tags" xmlns:util="urn:jsptagdir:/WEB-INF/tags/util" version="2.0">
<jsp:directive.page contentType="text/html;charset=UTF-8"/>
<jsp:output omit-xml-declaration="yes"/>
<spring:message code="label_homepage_index" htmlEscape="false" var="title"/>
<util:panel id="title" title="${title}">
<spring:message code="application_name" htmlEscape="false" var="app_name"/>
<h3>
<spring:message arguments="${app_name}" code="welcome_titlepane"/>
</h3>
<div><span><p>Hello</p></span></div>
<c:forEach var="announcement" items="${results}">
<option value ="10"><c:out value="${announcement.author}"/></option>
</c:forEach>
</util:panel>
</div>
您可以注释掉我给出的第一个示例,以查看第二个示例的问题。但问题实际上并不在于这些特定情况,而是我不能在模板中使用常规 HTML,这将使我的页面编写变得更加困难。我怎样才能解决这个问题?