Umieszczenie stylu CSS w JSF

0

Witam. Napisałem sobie prostą stronkę za pomocą JSF. Jednak mam pewien problem. W tutorialu, z którego korzystam style css na stronie umieszcza się w następujący sposób:

<LINK href="<%=request.getContextPath()%>/css/mystyle.css" rel="stylesheet" type="text/css">  

Jednak w innym tutorialu spotkałem się z możliwością takiego zapisu http://www.mkyong.com/jsf2/how-to-include-cascading-style-sheets-css-in-jsf/:

<h:outputStylesheet name="style.css" library="css" />

I tak się zastanawiam bo ten drugi sposób wydaje mi się bardziej przejrzysty, ale nie mogę z niego skorzystać w swojej aplikacji. Nie mam możliwości wpisać h:outputStylesheet bo nie może znaleźć czegoś takiego jak outputStylesheet.

Oto moja strona:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="f"  uri="http://java.sun.com/jsf/core"%>
<%@ taglib prefix="h"  uri="http://java.sun.com/jsf/html"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<LINK href="<%=request.getContextPath()%>/css/mystyle.css" rel="stylesheet" type="text/css"> 
<title>Konwerter Celsius -> Fahrenheit</title>
</head>
<body>
<f:view>
<h:form>
<h:panelGrid columns = "2">
<h:outputLabel value = "Celsius: "></h:outputLabel>
<h:inputText value = "#{konwertorTemperatury.celsius}"></h:inputText>
<h:commandButton action = "#{konwertorTemperatury.convert}" value = "Konwertuj"></h:commandButton>
<h:commandButton action = "#{konwertorTemperatury.reset}" value = "Resetuj"></h:commandButton>
</h:panelGrid>
</h:form>

<h:panelGroup rendered="#{konwertorTemperatury.zmienione==true}">
<h3>Wynik:</h3>
<h:outputLabel value = "Fahrenheit: "></h:outputLabel>
<h:outputLabel value = "#{konwertorTemperatury.fahrenheit}"></h:outputLabel>
</h:panelGroup>
</f:view>
</body>
</html> 

W tym miejscu deklaruje przestrzeń nazw:

<%@ taglib prefix="h"  uri="http://java.sun.com/jsf/html"%>

i nie mam opcji

h:outputStylesheet

. Taki szablon domyślnie generuje mi Eclipse przy tworzeniu strony jsp.

Jednak w tym drugim tutorialu widzę przestrzeń ta jest deklarowana:

<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:h="http://java.sun.com/jsf/html">

Niby wszystko tak samo z tą różnicą, że tutaj jest to deklarowane w znacznikach<html> </html> i przy takiej deklaracji mogę użyć

h:outputStylesheet

Czemu tak się dzieje? Niby wszystko wygląda tak samo a jednak przy jednym sposobie nie mam dostępu do tego a przy drugim tak.

0

Jeden tutorial masz od wersji 1.2 JSF a drugi jest od wersji 2.0. Wiele rzeczy się zmieniło, outputStylesheet jest nowością w tej wersji. Najwyraźniej eclipse generuje ci stary szablon. Dodatkowo musisz mieć też nowy serwer aplikacji, zgodny z wersją 2.0.

1 użytkowników online, w tym zalogowanych: 0, gości: 1