1

css ファイルを、設定したセッション変数と同じ名前にしたい Web ページがあります。

例えば; セッション変数が「青」の場合、ページに CSS ファイルblue.cssをロードします。

以下のことを試してみましたが、うまくいきませんでした。ストラットに関する私の知識は非常に限られています。

<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

このJavaスクリプトを試してみてください。動作します。変数コードは、urjspの非表示フィールドです。

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 に答える
0

c:out タグを html:rewrite タグの属性内に配置しているため、機能していません。Struts タグは、属性値内では解析されません。

于 2010-05-04T11:28:31.727 に答える
0

別のユーザーによると、属性でhtmlを書き換えることはできませんが、以下のようなことをしてリンク全体を書き換えることはできますか?

<html:rewrite page='<LINK rel="stylesheet" type="text/css" href="/css/${brand}.css"/>'>
于 2010-05-04T12:44:27.737 に答える
0
href="<html:rewrite page="/css/${brand}.css"/>">
于 2010-05-04T11:29:32.290 に答える
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 に答える