Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在从Servlet进行forwading时将JSP片段包含到JSP页面中?_Java_Jsp_Servlets_Jsp Fragments - Fatal编程技术网

Java 如何在从Servlet进行forwading时将JSP片段包含到JSP页面中?

Java 如何在从Servlet进行forwading时将JSP片段包含到JSP页面中?,java,jsp,servlets,jsp-fragments,Java,Jsp,Servlets,Jsp Fragments,首先,如果我的问题标题不正确,请建议我 接着是问题: 假设我有以下组件: search.jsp-带有提交数据表单的jsp页面 Search.java-一个控制器Servlet,它分别定义了get()和post(),可以充当路径/Search.jsp searchResults.jspf-包含一些JSTL代码的片段,用于显示搜索结果 这里我想要的是,对于每个POST请求,控制器servlet必须进行计算,将结果设置为请求属性,然后将请求转发到视图search.jsp,该视图应该在其自身代码之后包含

首先,如果我的问题标题不正确,请建议我

接着是问题: 假设我有以下组件:

search.jsp
-带有提交数据表单的jsp页面

Search.java
-一个控制器Servlet,它分别定义了
get()
post()
,可以充当路径
/Search.jsp

searchResults.jspf
-包含一些JSTL代码的片段,用于显示搜索结果

这里我想要的是,对于每个POST请求,控制器servlet必须进行计算,将结果设置为请求属性,然后将请求转发到视图
search.jsp
,该视图应该在其自身代码之后包含片段

因此,我可以通过以下方式定义视图:

search.jsp
+
searchResults.jspf
在一页纸上

问题是,我可以使用dispatcher进行转发或包含,因为我不知道在转发到JSP时如何包含片段


如果需要,请告诉我是否需要发布一些代码,或者是否需要任何更正。

在您的search.jsp中使用jsp嵌入您的searchResult.jsp:include:

<jsp:include page="searchResult.jsp"></jsp:include>
  • 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>
    
    
    搜寻再补给
    Search.jsp嵌入searchResult.jsp
    
  • searchResult.jsp

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <body>
      in searchResult
    </body>
    </html>
    
    
    在搜索结果中
    

  • 您可以在jsp中包含jspf,如下所示:

    <%@include file="searchResult.jspf" %>
    
    
    
    只有当特定测试的计算结果为true时,才能将语句设置为执行特定部分

    Ex:

    if(.....==true){
    <%@include file="searchResult.jspf" %>
    }else{
    <%@include file="someOther.jspf" %>
    }
    
    如果(……==true){
    }否则{
    }
    
    我如何确保只有在来自Servlet的POST方法时才包含它?您尝试过吗?当您转发Controller的请求时,此时我认为post和get之间没有区别。。。你如何转发你的请求?我试过了,一点问题也没有。如果你想要我有一个例子?谢谢你,我找到了一个方法,我使用了JSTL
    c:if
    查找
    requestAttribute
    showResult
    ,如果出现
    true
    它将
    包括
    搜索结果。jspf
    否则什么都不会发生,当通过GET处理请求时,我在servlet的
    doGet()
    方法中将其设置为
    false
    ,而在
    doPost()中将其设置为
    true
    !!我认为这是一条正确的道路。干杯:)我想使用JSTL或EL标记,而不是JSP代码,如果你能帮助我,请。您可以通过以下链接了解JSTL和EL。他们给出了在JSTL中使用每个标记的示例。JSTL-->EL-->
    if(.....==true){
    <%@include file="searchResult.jspf" %>
    }else{
    <%@include file="someOther.jspf" %>
    }