8
votes

JSF, remplacer les en-têtes HTTP

J'ai fortement besoin de remplacer JSF 2.0 Type de contenu . Par défaut, il est xxx

mais j'ai besoin xxx

merci.


0 commentaires

3 Réponses :


5
votes

Que diriez-vous de

<f:view contentType="text/html" />


1 commentaires

Cette solution est nécessaire pour travailler avec des versions plus anciennes d'iPhone et d'iPad. On dirait que les sourceurs plus tard se débarrassent du type de contenu par défaut et font de leur mieux. Mais le navigateur plus ancien respectait l'en-tête de type contenu et attendez-vous en-tête. Grande solution qui était simple.



6
votes

Utilisez le Droite DOCTYPE .

<!DOCTYPE html>
<html 
    xmlns:f="http://java.sun.com/jsf/core" 
    xmlns:h="http://java.sun.com/jsf/html" 
    xmlns:ui="http://java.sun.com/jsf/facelets">
    <h:head>
        <title>Insert your title</title>
    </h:head>
    <h:body>
        <h1>Hello World</h1>
    </h:body>
</html>


0 commentaires

3
votes

L'approche suivante fonctionne dans tous les navigateurs:

écrire un phaselistener: p> xxx pré>

et enregistrez-le dans faces-context.xml: p>

<lifecycle>
        <phase-listener>com.mycompnay.listener.ContentTypePhaseListener </phase-listener>
    </lifecycle>


6 commentaires

N'est-ce pas un phaselistener un peu trop surchargé "solution" pour ce problème simple? Indépendamment de cela, pourquoi pas seulement un fichier puisque vous n'aurez aucun intérêt dans le facescontext ?


1. Cela fonctionne dans tout le navigateur 2. Il peut en avoir besoin à l'avenir.


1. Je ne sais pas comment faire le travail à l'intérieur d'un phaselistener au lieu d'un fichier ou juste droit dans la vue est détecté par le WebBrowser. Peux-tu élaborer? 2. Peut-être.


De mon expérience - lorsque je devais ajouter non-cache à l'en-tête de cette façon, cela fonctionnait dans tous les navigateurs. Utiliser F: View ou d'autres astuces ne l'ont pas fait.


C'est correct pour particulièrement les en-têtes de cache. Mais cela concerne un problème différent. Conseils dans Cette réponse .


Je pense que vous avez mal compris les astuces et / ou le point de base-problème: les en-têtes de réponse HTTP ont la priorité sur HTML Meta en-têtes. Lorsqu'il n'est pas explicitement défini, le serveur Web fournira certains en-têtes de réponse HTTP par défaut, ce qui peut entraîner des en-têtes HTML Meta sur le même nom n'ayant aucun effet.