【问题标题】:How to have dynamic css files depending on struts session variable如何根据struts会话变量拥有动态css文件
【发布时间】:2010-05-04 11:24:28
【问题描述】:

我有一个网页,我希望 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 的版本。这是一个从别人那里捡来的项目,我以前从未使用过它们

【问题讨论】:

    标签: java css struts struts-1


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:
      href="<html:rewrite page="/css/${brand}.css"/>">
      

      【讨论】:

      • 这不起作用。在 html 中它只显示 ${brand} 而不是变量
      • 向我们展示您的 jsp 的顶部。你用的是哪个版本的jsp和jstl?
      • @MichaelMcCabe 尝试添加双引号,而不是单引号。
      【解决方案3】:

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

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

      【讨论】:

        【解决方案4】:

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

        现在我已经设法做到了;

        <%
        String brand = (String) session.getAttribute("brand");
        if (brand == null || brand.equals("")) {
            skin = "standard";
        }
        %>
        
        <link href="/css/<%=brand%>.css" rel="stylesheet" type="text/css" />
        

        【讨论】:

          【解决方案5】:

          试试这个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);
              }
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2013-05-18
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多