首先,如果我的问题标题不正确,请建议我。
继续提问: 假设我有以下组件:
search.jsp
- 带有提交数据表单的JSP页面
Search.java
- 分别定义get()
和post()
的控制器Servlet,以便它可以充当路径 /search.jsp
的调度程序 < / p>
searchResults.jspf
- 带有一些JSTL代码的片段,用于显示搜索结果
我想要的是每个 POST 请求控制器servlet必须进行计算,将结果设置为请求属性,而不是 - 将请求转发给视图search.jsp
应该包含片段后面的片段。
因此,我可以通过以下方式获得视图定义:
search.jsp
+
searchResults.jspf
在一个页面上。
问题是,我可以向调度员转发或包含,因为我不知道如何在将JSP转发到其中时包含片段。
如果需要,我需要发布一些代码,或者需要更正。
答案 0 :(得分:2)
在你的search.jsp中使用jsp:include:
嵌入你的searchResult.jsp<jsp:include page="searchResult.jsp"></jsp:include>
例: 1. servlet:
@WebServlet(name = "Servlet", urlPatterns = "/myForwardTest")
public class Servlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.getRequestDispatcher("search.jsp").forward(request, response);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
}
search.jsp的:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>In search resust</title>
</head>
<body>
Search.jsp embed searchResult.jsp
<jsp:include page="searchResult.jsp" />
</body>
</html>
searchResult.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<body>
in searchResult
</body>
</html>
答案 1 :(得分:1)
您可以将jspf包含在jsp中,如下所示:
<%@include file="searchResult.jspf" %>
只有当特定测试评估为 true 时,您才可以设置语句来执行某个部分。
<强>实施例强>
if(.....==true){
<%@include file="searchResult.jspf" %>
}else{
<%@include file="someOther.jspf" %>
}