1

我有一个网页,我希望 css 文件与我设置的会话变量同名。

例如; 如果会话变量是“蓝色”,我希望页面加载 CSS 文件blue.css

我在下面尝试了一些没有用的东西,现在我被卡住了。我对struts的了解非常有限。

<LINK rel="stylesheet" type="text/css" 
    href="<html:rewrite page='/css/<c:out value="${brand}"/>.css'/>">

这是我的 jsp 页面顶部的完整代码清单

<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-html-el" prefix="html-el"%>

<html:html lang="true">

<head>
<LINK rel="stylesheet" type="text/css" href="<html:rewrite page='/css/${brand}.css'/>">

<html:base/>

我不知道如何找到我正在使用的 JSP 和 JSTL 的版本。这是一个从别人那里捡来的项目,我以前从未使用过它们

4

5 回答 5

0

根据另一位用户的说法,您不能在属性中重写 html,但也许您可以执行以下操作并重写整个链接?

<html:rewrite page='<LINK rel="stylesheet" type="text/css" href="/css/${brand}.css"/>'>
于 2010-05-04T12:44:27.737 回答
0

不幸的是,我无法得到您的任何答案。我认为这可能是我的版本冲突的问题。

现在我已经设法做到了;

<%
String brand = (String) session.getAttribute("brand");
if (brand == null || brand.equals("")) {
    skin = "standard";
}
%>

<link href="/css/<%=brand%>.css" rel="stylesheet" type="text/css" />
于 2010-05-04T13:50:10.140 回答
0

它不起作用,因为您将 c:out 标记放在 html:rewrite 标记的属性中。Struts 标签在属性值内时不解析。

于 2010-05-04T11:28:31.727 回答
0
href="<html:rewrite page="/css/${brand}.css"/>">
于 2010-05-04T11:29:32.290 回答
0

试试这个java脚本,它会工作的。变量代码是你的jsp中的一个隐藏字段。

var code=(document.getElementById('code')).value;

var url;

// Dynamically loads the Style Sheet according to the user logged in
if(code !== null)
    {
    url="<link rel='stylesheet' type='text/css' href='css/"+code+".css' title='default'>";
    }
else
    {
    url="<link rel='stylesheet' type='text/css' href='css/commonStyle.css' title='default'>";
    }
if(url !== null)
    {
    document.write(url);
    }
于 2010-09-27T05:16:16.343 回答