我在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.
或者说我需要遍历我从控制器获取的List:
<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,这会使我的页面很多更难。我怎么能解决这个问题?
答案 0 :(得分:1)
关于你的第一个例子,看起来你可能把你的东西放在了错误的地方。也许粘贴整个文件(很简短),这样我们就可以看出是否存在错误。
在第二个例子中,异常表示“前缀”c“for element”c:forEach“未绑定。”。这通常意味着您的xmlns前缀可能未在jspx标头中声明。