为什么包含的JSP文件无法正确处理?

时间:2011-03-25 02:08:36

标签: java jsp jstl

我正在尝试(和学习)构建一个java Web框架,并在开发基于数据库内容的代码生成器的过程中。在视图制作过程中,我遇到了困难,我不知道如何解决它。

首先,我希望使用以下index.jsp

创建所有页面
<body>
<%@ include file="header.jsp" %>
<hr/>
<%@ include file="body.jsp" %>
<hr/>
<%@ include file="footer.jsp" %>
</body>

而且,在body.jsp中,我希望它是这样的:

  <jsp:include page="${application_modul}" %>

application_modul是其控制器中以这种方式定义的属性:

request.setAttribute("application_modul","user_account\\view_user_account.jsp");

它可以正确找到文件,但处理后的jsp不是我的预期。在这里:

<c:forEach items="[application.models.UserAccountModel@18a49e0, application.models.UserAccountModel@1f82982]" var="item" varStatus="status" > 
<tr> 
....

你可以看到jstl forEach的items属性,得到它的变量名(toString())......

任何想法是什么问题????

我希望我能正确描述我的问题

非常感谢!

PS: 我已经为此创建了一个快速修复,但不是我想要的。在生成的view_user_account.jsp中,我这样做:

<body>
<%@ include file="header.jsp" %>
<hr/>
<c:forEach items="${row}" var="item" varStatus="status" > 
<tr> 
....
<hr/>
<%@ include file="footer.jsp" %>
</body>

你可以看到我在这里创建了整个文件......

EDITED: PS:$ {row}是一个ArrayList,填充了某些表格中的数据

2 个答案:

答案 0 :(得分:3)

那么,用一句话来概括你的问题,JSTL标签没有被解析,它们最终在生成的HTML输出中显而易见?

您需要在JSP页面的顶部声明JSTL taglib,在该页面中您使用JSTL标记来运行它们。对于JSTL core taglib,那将是

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

答案 1 :(得分:0)

我不确定但是,试试这个......

的index.jsp

  <jsp:param name="parameterName" value="{parameterValue | <%= expression %>}" />