2014-03-24 30 views
0

我有一個提交給JSP的html表單。該表單有一個用於指定背景色偏好的輸入。在JSP頁面上,我試圖使用用戶指定的背景顏色,或者如果他們不輸入任何內容,請使用CSS文件中指定的顏色。這可能嗎?動態JSP背景色

我在我的jsp中指定了CSS文件的位置,所以我知道我可以到達css背景顏色,但是如果用戶指定了一種顏色,我想'忽略'並使用他們選擇的顏色。

這可能嗎?

回答

0

您可以通過<link href...>加載默認css,然後在頁面上的<style>塊中添加替代。由於style塊上定義的樣式優先於其他樣式,因此它將成功覆蓋默認值。您可以看到更多關於如何CSS「級聯」W3C specs上的樣式。

嘗試像這樣在<head>

<link href="default.css" media="all" rel="stylesheet" /> 
<style> 
    /* Define custom CSS by the user here */ 
    body{ 
     background-color: <% ... %>; 
    } 
</style> 

我想有生產在JSP正確的輸出的方法很多,但使用JSTL Core IF Tag你可以做類似如下:

<style> 
    /* Define custom CSS by the user here */ 
    body{ 
     <core:if test="${param.backgroundColor!= null}"> 
      background-color: <%=request.getParameter("backgroundColor")%> 
     </core:if> 
    } 
</style> 

這樣,如果用戶爲h1元素選擇了自定義background-color,它將覆蓋默認值。

+0

好吧,所以在scriptlet標籤中,我會從請求中獲取參數(顏色),如果它爲null,我該怎麼辦? – user1154644

+0

@ user1154644我用一種可以做到的方式更新了我的答案。 – aurbano

+0

是否有理由將它包裹在h1塊中? – user1154644