为什么一个页面包含在Struts中JSP会执行多次?

问题描述 投票:0回答:1

我尝试在 Struts 中运行以下代码并收到错误:

<%@page contentType="text/html" pageEncoding="UTF-8"%> <!DOCTYPE
        HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"   
        "http://www.w3.org/TR/html4/loose.dtd">         
<html> 
<jsp:include page="/Shop_login.jsp"></jsp:include>
<head>Welcome To My shop application </head> 
<body> 
  User Name:<html:input text="first_name"> </html:input>
  Password:<html:password text="password"> </html:password>  
</body>
</html>

输出为:

Welcome To My shop application User Name: Password: 
Welcome To My shop application User Name: Password: 
Welcome To My shop application User Name: Password: 
Welcome To My shop application User Name: Password:  ...
java jsp struts struts-1 struts-tags
1个回答
1
投票

如果您使用 JSTL,您也可以在 JSP 中拥有这些标记库

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="html" uri="http://struts.apache.org/tags-html" %>
<%@ taglib prefix="bean" uri="http://struts.apache.org/tags-bean" %>
<%@ taglib prefix="logic" uri="http://struts.apache.org/tags-logic" %>

文件中没有更多内容,只有这些代码片段

然后使用

<%@ include file="/tags/taglibs.jsp" %>

在页面顶部,您可以使用定义下方的标签。 例如,您可以将其他 JSP 片段包含在 JSTL 中

<c:import url="/pages/page.jsp"/> 

或使用 JSP 指令

<jsp:include page="/pages/page.jsp"/>

并且不要在其内部使用相同的片段,它可能会导致从代码编译的 servlet 中出现递归调用。

© www.soinside.com 2019 - 2024. All rights reserved.