Java 包括带有JSP的页面和加载各种CSS文件
我有一个具有页面结构的.jsp文件(我们称之为base.jsp),它还包括指向CSS文件(base.CSS)的链接。现在我想将这个base.jsp包含在另一个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
如果(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,具体取决于参数。谢谢!这正是我要找的!工作得很好!:)