包含带JSP的页面并加载各种CSS文件

时间:2014-12-08 07:06:57

标签: java javascript jsp

我有一个带有页面结构的.jsp文件(让我们称之为base.jsp),它还包含指向CSS文件(base.css)的链接。现在我想在另一个jsp文件中包含这个base.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?有没有这种可能性?

3 个答案:

答案 0 :(得分:1)

请将以下代码放在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'>");

%>

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

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

答案 1 :(得分:0)

我会这样做:

在基础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%>'>

答案 2 :(得分:0)

当然,您可以使用“&lt;%”和“%&gt;”来使用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

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