Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/337.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 包括带有JSP的页面和加载各种CSS文件_Java_Javascript_Jsp - Fatal编程技术网

Java 包括带有JSP的页面和加载各种CSS文件

Java 包括带有JSP的页面和加载各种CSS文件,java,javascript,jsp,Java,Javascript,Jsp,我有一个具有页面结构的.jsp文件(我们称之为base.jsp),它还包括指向CSS文件(base.CSS)的链接。现在我想将这个base.jsp包含在另一个jsp文件中,传递一些参数,并根据这个参数加载额外的CSS文件。应该是这样的(我知道这段代码是不正确的,我只想展示我最终想要实现的目标): 如果(x==“720”) 加载720.css 否则,如果(x==“460”) 加载460.css 其他的 加载320.css 怎样才能做到呢 编辑 也许可以这样做 <%@include fil

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


如果(x==“720”)
加载720.css
否则,如果(x==“460”)
加载460.css
其他的
加载320.css
怎样才能做到呢

编辑

也许可以这样做

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


然后在base.jsp文件中读取这个x参数并相应地加载其他css?有这种可能性吗?

请将以下代码放在base.jsp的head标记中

<%
        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'>");

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

并将以下代码放在另一个包含base.jsp的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'>");

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

我会这样做:

<%! public String getSize (int x) {
String s;
if (x==720){
s="720.css";
else if(x==480){
s="another.css"}
//
return s;
}
%>
在基本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标记的示例。

完整的JSP页面以及我在该URL中放置的示例:

我想这就是您想要的,您想在哪里传递参数?它应该是一个常量值(在代码中声明),还是由输入传递?@drgPP它应该是一个常量值,在代码中声明。@KennethClark不完全是。。。我需要依赖这个X参数,而不是媒体查询。该设备可能是800px宽,但可能加载320.css或720.css,具体取决于参数。谢谢!这正是我要找的!工作得很好!:)