开发者

How to have dynamic css files depending on struts session variable

开发者 https://www.devze.com 2022-12-29 06:15 出处:网络
I have a webpage in which i want the css file to be the same name as a session variable I have set. For example;

I have a webpage in which i want the css file to be the same name as a session variable I have set.

For example; If the session variable was "blue", i want the page to load the CSS file blue.css.

I tried something below which didnt work, and I'm now stuck. My knowledge of struts is very limited.

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

This is the full code listing at the top of my jsp page

<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
<%@ taglib uri="http://struts.apache.org/tags-ht开发者_开发百科ml" 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/>

I do not know how to find the version of JSP and JSTL I am using. This was a project picked up from someone else and I have never used them before


It isn't working because you put the c:out tag inside the attribute of the html:rewrite tag. Struts tags don't parse when within attribute values.


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


according to another user you cant have html rewrite in the attribute but maybe you can do something like below and rewrite the whole link?

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


Unfortunatily, I couldnt not get any of your answers working. I think it may be a problem with my versions clashing.

For now I have managed to do it by doing;

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

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


Try this java script, It will work. variable code is a hidden field in 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);
    }
0

精彩评论

暂无评论...
验证码 换一张
取 消