我正在尝试(和学习)构建一个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
,填充了某些表格中的数据
答案 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 %>}" />