2014-12-08 111 views
1

我有一个带有页面结构(让我们称之为base.jsp)的.jsp文件,它还包括到CSS文件(base.css)的链接。现在我想将这个base.jsp包含在另一个jsp文件中,传递一些参数并根据此参数加载额外的CSS文件。它应该是类似的东西(我知道这个代码是不正确的,我只是想证明我想最终实现什么):包含一个带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?有这种可能吗?

+0

我想这是你想要的http://css-tricks.com/resolution-specific-stylesheets/ – 2014-12-08 07:09:06

+0

哪里你想传递参数吗?它应该是一个常量值(在代码中声明)还是要通过输入传递? – drgPP 2014-12-08 07:10:26

+0

@drgPP它应该是一个在代码中声明的常量值。 – Igal 2014-12-08 07:20:23

回答

1

请把下面的代码在base.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'>"); 

%> 

的head标签,把下面的代码放在其中包括base.jsp

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

谢谢!正是我在找的!工作很棒! :) – Igal 2014-12-08 07:51:50

+0

@lgal欢迎您。 – laksys 2014-12-08 07:55:24

0

另一个JSP,我会做这样的:

在基本的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%>'> 
0

当然你也可以使用 “<%” 和 “%>” 标签使用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查看一些示例。 http://www.tutorialspoint.com/jsp/jstl_core_if_tag.htm

与我已经把这个URL样品的全JSP页面: http://pastebin.com/qn2Qh3GK