如何根据struts会话变量获得动态css文件

时间:2010-05-04 11:24:29

标签: java css struts struts-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版本。这是一个从别人那里拿来的项目,我从来没有使用过它们

5 个答案:

答案 0 :(得分:0)

它无效,因为您将c:out标记放在html:rewrite标记的属性中。在属性值中时,Struts标记不会解析。

答案 1 :(得分:0)

href="<html:rewrite page="/css/${brand}.css"/>">

答案 2 :(得分:0)

根据另一个用户,你不能在属性中重写html,但也许你可以做下面的事情并重写整个链接?

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

答案 3 :(得分:0)

不幸的是,我无法让你的任何答案奏效。我认为这可能是我的版本发生冲突的问题。

现在我已经设法做到了;

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

<link href="/css/<%=brand%>.css" rel="stylesheet" type="text/css" />

答案 4 :(得分:0)

试试这个java脚本,它会起作用。 变量代码是ur 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);
    }