Model view controller 加载JSP:Include基于会话参数(使用MVC/Model2方法)

Model view controller 加载JSP:Include基于会话参数(使用MVC/Model2方法),model-view-controller,jsp,servlets,Model View Controller,Jsp,Servlets,我正在进行一些服务器端表单验证,如果一个或多个字段填写不正确,则会用所有错误消息填充一个数组。在客户端,我有一个scriplet,用于检查是否存在任何错误消息,如果存在,则显示它们。当页面来自servlet时,它知道是否失败,因为在成功提交时,它根本不会重新加载表单jsp页面 以下是我显示错误的方式: <%if(request.getSession().getAttribute("errors") != null){ %> <jsp:include page="error.js

我正在进行一些服务器端表单验证,如果一个或多个字段填写不正确,则会用所有错误消息填充一个数组。在客户端,我有一个scriplet,用于检查是否存在任何错误消息,如果存在,则显示它们。当页面来自servlet时,它知道是否失败,因为在成功提交时,它根本不会重新加载表单jsp页面

以下是我显示错误的方式:

<%if(request.getSession().getAttribute("errors") != null){ %>
<jsp:include page="error.jsp"></jsp:include>
<br>
<% } %>


而error.jsp页面是:

<%@ page import="java.util.ArrayList" %>

<h3>Oops...We Have a Problem</h3>
Please review and fix the following errors.
<br>
<%
ArrayList errMessages = (ArrayList)request.getSession().getAttribute("errors");
for(int i=0; i<errMessages.size(); i++){
out.println(errMessages.get(i));
%>
<br>

哎呀……我们有个问题
请检查并修复以下错误。


只需使用taglibs而不是scriptlet来控制JSP中的流。是一个标准的JSP标记库,它提供了




另见:

这只是一个非常好奇的问题:你不是第一个问这种问题的人。但我真的很想知道,您(和其他人)是如何知道MVC方法及其规则的,而不知道JSPEL、JSTL和taglibs的。那两个人是齐头并进的。关于servlet/JSP开发,你从哪里学到的?在我职业生涯的大部分时间里,我一直从事编程的图形/显示方面的工作,但在过去的一年里,我一直在阅读书籍,并自学更深入的java和servlet/JSP。我在一家小公司工作,所以幸运的是,我能够承担一个小项目,在工作中自学。很抱歉,我没有像你那样受过适当的教育,但每个人都必须从某个地方开始。JSTL和taglibs能解决我所问的问题吗?将来,你能以建设性的回答的形式回答吗?我的观点不是不建设性的或屈尊俯就的。我的答案和巴卢斯的答案是一样的(所以我投了他一票)。这只是一个好奇:现在谈论JSP的大多数好书或教程都应该讨论JSPEL、JSTL和定制JSP标记。尤其是当他们谈论MVC时。但事实上,这里的许多JSP提问者仍然使用Scriptlet,并且没有听说过这些主题,这对我来说似乎很奇怪。所以我只是徘徊在所有这些提问者了解JSP技术的地方。是在一个糟糕的网站上,还是在一本旧书中?
<c:if test="${not empty errors}">
    <jsp:include page="error.jsp" />
</c:if>
<c:forEach items="${errors}" var="error">
    <c:out value="${error}" /><br/>
</c:forEach>