包括一个带有 JSP 的页面并加载各种 CSS 文件

Including a page with JSP and loading various CSS files

本文关键字:加载 文件 CSS JSP 包括一      更新时间:2023-09-26

我有一个.jsp文件,其中包含页面结构(我们称之为base.jsp),它还包括指向CSS文件(base.css)的链接。现在我想在另一个 jsp 文件中包含这个基础.jsp传递一些参数并根据这个参数加载额外的 CSS 文件。它应该是这样的(我知道这段代码不正确,我只是想演示我最终想要实现的目标):

<%@include file="base.jsp" x="720" %>
if(x == "720")
    load 720.css
else if(x == "460")
    load 460.css
else
    load 320.css

怎么能做到呢?

编辑

也许可以用这样的事情来完成?

<%@include file="base.jsp?x=720" %>

然后以某种方式读取 base.jsp 文件中的这个 x 参数并相应地加载其他 CSS?有这种可能吗?

请将以下代码放在底座的 head 标签中.jsp

<%
        String size = request.getParameter("size");
        if(size == null)
            out.println("<link rel='stylesheet' href='base.css'>");
        else if(size.equals("720"))
            out.println("<link rel='stylesheet' href='720.css'>");
        else if(size.equals("460"))
            out.println("<link rel='stylesheet' href='460.css'>");
        else if(size.equals("320"))
            out.println("<link rel='stylesheet' href='320.css'>");
%>

并将以下代码放在另一个包含 base 的 JSP 上.jsp

<jsp:include page="base.jsp">
    <jsp:param name="size" value="720"/>
</jsp:include>

我会这样做:

在基本 jsp 中,我可以声明一个方法,该方法可以接收一个 int 参数(大小)

像这样:

<%! public String getSize (int x) {
String s;
if (x==720){
s="720.css";
else if(x==480){
s="another.css"}
//
return s;
}
%>

在包含阶段之后:

<% String s=getSize(720); %>
<%@include file="base.jsp">
<link rel='stylesheet' href='<%=s%>'>
当然,

您可以使用带有"<%"和"%>"标签的Java片段。但是在JSP中使用Java代码段不是一个好的做法。

为此目的

最好使用 JSP 标记。您可以使用

<c:if test="${param.x == 720}">
    <link rel="stylesheet" type="text/css" href="720.css" />
</c:if>
<c:if test="${param.x == 460}">
    <link rel="stylesheet" type="text/css" href="460.css" />
</c:if>

不要忘记包括

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

在 JSP 文件的开头,还要将 JSTL 库添加到您的项目中。

您可以在此 URL 中看到一些使用 JSP if 标记的示例。http://www.tutorialspoint.com/jsp/jstl_core_if_tag.htm

完整的 JSP 页面,其中包含我在此 URL 中放置的示例:http://pastebin.com/qn2Qh3GK