gpt4 book ai didi

java - 是否可以在 JSP 的页面指令中包含 Expression 标记?

转载 作者:行者123 更新时间:2023-11-29 03:20:35 25 4
gpt4 key购买 nike

我试图通过使用通过另一个 jsp 传递给 jsp 的参数将一个 jsp 文件包含到另一个文件中。

代码是

Template.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

<% String t = (String) request.getParameter("title"); %>
<title><%=t%></title>

<link type="text/css" rel="stylesheet" href="css/jquery.dataTables.min.css">
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/jquery.dataTables.min.js"></script>
<script type="text/javascript">

<% String js = (String) request.getParameter("script"); %>
<%@ include file="<%=js%>" %>

</script>
</head>
<body>

<% String table = (String) request.getParameter("table"); %>
<%@ include file="<%=table%>" %>

</body>
</html>

Table.jsp

 <table id="Profiletable" class="display" cellspacing="0" width="100%"> 
<thead>
<tr>
<th>Name</th>
<th>Profile</th>
</tr>
<thead>
</table>

script.js

$(document).ready(function() {
var table = $('#Profiletable').DataTable( {
"ajax":"Profiles.txt",
"columns": [
{"data" : "Name"},
{"data" : "Profile"}
]
} );
});

includer.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<jsp:include page="template.jsp">
<jsp:param name="title" value="Test"/>
<jsp:param name="script" value="script.js"/>
<jsp:param name="table" value="table.jsp"/>
<jsp:include/>

但是上面的代码是行不通的。如果我硬编码值 <%@ include file="fileName" %>然后就可以了。

最佳答案

JSP include指令和JSP include Action 的区别

JSP 包含指令

<%@ include file="filename" %> 
  • 在JSP页面翻译时,include指令中给出的文件内容被粘贴原样,在JSP include指令所在的地方用来。然后将源 JSP 页面转换为 java servlet 类。包含的文件可以是静态资源或 JSP 页面。通常 JSP include 指令用于包含页眉横幅和页脚。

  • JSP 编译过程是,源JSP 页面只有在该页面发生变化时才会被编译。如果包含的 JSP 文件发生更改,则不会编译源 JSP 文件,因此修改不会反射(reflect)在输出中。

JSP 包含 Action

<jsp:include page="relativeURL"/> 
  • jsp:include Action 元素就像一个函数调用。在运行时,包含的文件将被执行,结果内容将包含在源 JSP 页面中。当包含的 JSP 页面被调用时,请求和响应对象都作为参数传递。

  • 如果需要传递额外的参数,那么可以使用jsp:param元素。如果资源是静态的,它的内容被插入到调用 JSP 文件中,因为不需要处理。


你的问题

这对于 include 指令是不可能的。当 JSP 的 servlet 在页面上的 Java 代码被执行很久之前构造时,该指令被评估。

您可以将可变路径与 <jsp:include/> 一起使用标记,在运行时进行评估。

关于java - 是否可以在 JSP 的页面指令中包含 Expression 标记?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23835653/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com