我有一个带有页面结构的.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?有没有这种可能性?
答案 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