JSF 2.0: как включитьатрибуты? - PullRequest
0 голосов
/ 19 июня 2011

У меня проблема, если я использую:

<head>
    .. stylesheet and javascripts 
</head>

Мой стиль из таблицы стилей в порядке, но с предупреждением внизу: «Один или несколько ресурсов имеют судьбу« головы », но ни один компонент« головы »не был определен в представлении».

поэтому, если я изменю <head> на <h:head>, предупреждение исчезнет, ​​но мой стиль тоже исчезнет ...

в чем проблема?

UPDATE

// index.xhtml
<head>
    <ui:include src="jsf/components/head_index.xhtml" id="head" />
</head>
<h:body styleClass="nojs"> 
...
</h:body>

// head_index.xhtml   
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
                xmlns:h="http://java.sun.com/jsf/html"
                xmlns:f="http://java.sun.com/jsf/core"
                xmlns:ui="http://java.sun.com/jsf/facelets"
                xmlns:a4j="http://richfaces.org/a4j"
                xmlns:rich="http://richfaces.org/rich">

    <link rel="shortcut icon" href="#{request.contextPath}/images/logo.ico" />
    <meta http-equiv="Content-Script-Type" content="text/javascript" />
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
    <meta name="robots" content="index, follow" />
    <meta name="keywords" content="" />
    <meta name="title" content="" />
    <meta name="description" content="" />

    <title>TITLE</title>
    <!-- ////////////////////////////////// -->
    <!-- //      Start Stylesheets       // -->
    <!-- ////////////////////////////////// -->
    <link href="./css/style.css" rel="stylesheet" type="text/css" />
    <link href="./css/nivo-slider.css" rel="stylesheet"  type="text/css" media="screen" />
    <!-- ////////////////////////////////// -->
    <!-- //      Javascript Files        // -->
    <!-- ////////////////////////////////// -->
    <script type="text/javascript" src="./js/jquery-1.4.2.min.js"></script>
    <script type="text/javascript" src="./js/cufon-yui.js"></script>
    <script type="text/javascript" src="./js/geosanslight_500.font.js"></script>
    <script type="text/javascript">
             Cufon.replace('h1') ('h2') ('h3') ('h4') ('h5') ('h6') ('.middle-text');

    </script>
    <script type="text/javascript" src="./js/jquery.lavalamp.js"></script>
    <script type="text/javascript" src="./js/jquery.easing.1.1.js"></script>
    <script type="text/javascript">
    var $ = jQuery.noConflict();
            $(document).ready(function(){
            /* Function for lavalamp navigation menu and dropdown */
            $("#menu").lavaLamp({
                    fx: "backout",
                    speed: 700
            });

            $(" #menu ul ").css({display: "none"}); // Opera Fix
            $(" #menu li").hover(function(){
            $(this).find('ul:first').css({visibility: "visible",display: "none"}).slideDown(400);
            },function(){
            $(this).find('ul:first').css({visibility: "hidden"});
            });

            /* if javascript disabled */
            $("body").removeClass("nojs").addClass("js");




    });
    </script>
    <script type="text/javascript" src="./js/jquery.nivo.slider.pack.js"></script>
    <script type="text/javascript">
    /* homepage slideshow */
    $(window).load(function() {
            $('#slider').nivoSlider({
                    effect:'random', //Specify sets like: 'fold,fade,sliceDown'
                    slices:15,
                    animSpeed:500, //Slide transition speed
                    pauseTime:6000,
                    directionNav:false, //Next &amp; Prev
                    startSlide:0 //Set starting Slide (0 index)
            });
    });
    </script>
    <!--[if lte IE 8]>
    <script type="text/javascript" src="http://demo.templatesquare.com/html/genesis/genesis-default/js/DD_roundies_0.0.2a-min.js"></script>
    <script type="text/javascript" src="http://demo.templatesquare.com/html/genesis/genesis-default/js/ie_rounded_config.js"></script>
    <![endif]-->

</ui:composition>


//top 
<div id="top">
    <div id="topleft">
        <div id="logo">
            <h1><a href="./index.xhtml">PROJECT</a></h1>
        </div><!-- end #logo -->
    </div><!-- end #topleft -->

ОБНОВЛЕНИЕ 2: Я пробую предложение @Vineet и @George, но у меня проблема: Это работает:

<link href="#{request.contextPath}/css/style.css" rel="styleSheet" type="text/css"/>

Но когда я пытаюсь использовать в JSF, как:

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

Структура папки:

WebPages
   META-INF
   WEB-INF
   css
   html
   images
   js
   jsf
   ..// .xhtml files

Это не работает ...

Есть идеи, ребята?

С наилучшими пожеланиями, Вальтер Энрике.

1 Ответ

4 голосов
/ 19 июня 2011

Вы должны использовать #{request.contextPath}, чтобы указать абсолютное местоположение приложения. Если ваши скрипты находятся в папке js вашего приложения, вы можете использовать

<script type="text/javascript" src="#{request.contextPath}/js/jquery.lavalamp.js"/>

или h:outputScript и h:outputStyleSheet, как предложил @Vineet Reynolds

ОБНОВЛЕНИЕ:
если вы хотите использовать h:outputStyleSheet, вам нужно создать папку resources в WebPages и скопировать в нее папку css и js. Таким образом, структура папки будет

WebPages
   META-INF
   WEB-INF
   resources
      css
      js
   html
   images
   jsf
   ..// .xhtml files

тогда вы можете использовать h:outputStyleSheet таким образом:

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

и для JavaScript

<h:outputScript library="js" name="somejs.js"/>

Подробнее о ресурсах упаковки в jsf 2 смотрите в этом посте

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...