Imbutir HTML no JSP

6 respostas
Jhoni_Bravo

Salve Salve Galera,

Preciso de uma ideia como resolver este problema. O problema é o seguinte, através do meu java eu quero montar meu HTML dinamicamente e fazer aparecer na página JSP, mas não tenho nem ideia de como fazer isto. se algum puder m ajudar.

6 Respostas

drsmachado

O que você pretende fazer, exatamente?

Basicamente, html é uma estrutura em que você abre uma tag e a fecha, dentro dela, determinadas outras tags podem ser inseridas, além de conteúdo como texto.
Na servlet:

String codigo = "<div><h1>Este é um titulo</h1></div>";

e na jsp:

<%= codigo %>
Jhoni_Bravo

Então drsmachado,

o problema é o seguinte eu uso uma ferramenta chamada JDeveloper 10g e nesse cara não tenho como inserir esse esquema dessa forma e nem usando servlets, ou eu faço algo via SELECT ou algo que eu crie no java algum esquema para eu devolver na tela do jsp.
vou mostrar um exemplo abaixo o esquema que utilizamos para criarmos uma jsp e meu java para vc ter alguma ideia.
Está ferramenta tem uma diferença do Eclipse e do Netbeans

Código JSP
<%@ page contentType="text/html;charset=windows-1252"%>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<%@ taglib uri="http://xmlns.oracle.com/adf/faces" prefix="af"%>
<%@ taglib uri="http://xmlns.oracle.com/adf/faces/html" prefix="afh"%>
<%
    if(session==null){
       RequestDispatcher rd= request.getRequestDispatcher("login.jsp");
       rd.forward(request, response); 
    }
    else{
    String usuario=(String)session.getAttribute("usuario_conectado");
     if(usuario==null){
       RequestDispatcher rd= request.getRequestDispatcher("login.jsp");
       rd.forward(request, response);     
     }
     else if(usuario.equals("")){
        RequestDispatcher rd= request.getRequestDispatcher("login.jsp");
        rd.forward(request, response); 
     }
   }
%>
<f:view>
  <afh:html>
    <afh:head title="Resultado Check List Avulso">
      <meta http-equiv="Content-Type"
            content="text/html; charset=windows-1252"/>
      <style type="text/css">
      body {
      background-color: #ffffff; 
}
      a:link { color: #ffffff; }
    </style>
      <link href="css/jdeveloper.css" rel="stylesheet" media="screen"/>
    </afh:head>
    <afh:body>
      <af:messages/>
      <h:form>
        <af:panelPage title="Resultado Check List Avulso" chromeType="compact">
          <af:commandButton text="Teste"
                            action="#{backing_CheckList_Avulso_Resultado.acao}"/>
          <f:facet name="menu1">
            <af:menuTabs>
              <af:commandMenuItem text="Retornar"
                                  action="success"/>
            </af:menuTabs>
          </f:facet>
          <f:facet name="menuGlobal">
            <af:menuButtons>
              <af:panelForm rows="2">
                <af:panelLabelAndMessage label="Usuário :">
                  <af:outputText
                                 inlineStyle="font-weight:bold;"
                                 binding="#{backing_jmenu_1.nome_usuario}"/>
                </af:panelLabelAndMessage>
                <af:panelLabelAndMessage label="Id. do Usuário :">
                  <af:outputText
                                 inlineStyle="font-weight:bold;"
                                 binding="#{backing_jmenu_1.id_usuario}">
                  </af:outputText>
                </af:panelLabelAndMessage>
              </af:panelForm>
              <af:commandMenuItem text="Logout - Sair" id="But_sair"
                                  action="#{backing_jmenu_1.logout}"/>
            </af:menuButtons>
          </f:facet>
          <f:facet name="branding">
            <af:objectImage source="/logo.gif"/>
          </f:facet>
          <f:facet name="brandingApp"/>
          <f:facet name="appCopyright">
            <af:outputText value="JMS-JDEV"/>
          </f:facet>
          <f:facet name="appPrivacy">
            <af:commandLink text="JMS"/>
          </f:facet>
          <f:facet name="appAbout">
            <af:commandLink text="Versão 0.901042008"/>
          </f:facet>
        </af:panelPage>
      </h:form>
    </afh:body>
  </afh:html>
</f:view>
<%-- 
  oracle-jdev-comment:preferred-managed-bean-name:backing_CheckList_Avulso_Resultado
--%>
<%-- 
  oracle-jdev-comment:preferred-managed-bean-name:backing_CheckList_Avulso_Resultado
--%>

Código Java

package oracle.view.backing;

import oracle.binding.BindingContainer;
import oracle.binding.OperationBinding;

public class CheckList_Avulso_Resultado {
    private BindingContainer bindings;

    public CheckList_Avulso_Resultado() {
    }
    
    public BindingContainer getBindings() {
        return this.bindings;
    }

    public void setBindings(BindingContainer bindings) {
        this.bindings = bindings;
    }

    public String commandButton_action2() {
        BindingContainer bindings = getBindings();
        OperationBinding operationBinding = 
            bindings.getOperationBinding("ExecuteWithParams1");
        Object result = operationBinding.execute();
        if (!operationBinding.getErrors().isEmpty()) {
            return null;
        }
        return null;
    }

Praticamento Tudo funciona via select ou e em VIEW utilizando Blocos

drsmachado

Jhoni, o problema não é o JDeveloper (ferramenta ruim, hein?), mas o tipo de framework que você utiliza aí na tua empresa.
Pelas taglibs, é uma versão do jsf, que não consegui identificar se 1.2 ou 2.

Será preciso saber como é o comportamento do jsf e dessa implementação quanto à inserção direta de html.
Por que, se vc utilizasse jsf 2 puro e tentasse fazer isso com um h:outputLabel, ele não renderizaria o html, iria considerar tudo texto.

Jhoni_Bravo

Entendi drsmachado,

O JSF que utilizo e 1.1, então a ideia seria entender um pouco para fazer esse cara funcionar de forma dinamica, caso vc tenha algum site apra eu dar uma olhada eu agradeço,  estive vendo alguns aqui mas nada específico ao que eu preciso.

Obrigado

Jhoni_Bravo

:?:

J

Voce já deve ter conseguido, mas para ficar registrado:

coloque tudo dentro de um outputlabel do ADF:

<af:outputText value="<a href='#{msg.DsUrlMaterial}'>#{msg.DsTitulo}</a><br />" escape="false" />

Lembre que sempre que quiser exibir HTML dentro de output coloque escape=“false”

Criado 11 de outubro de 2011
Ultima resposta 28 de mar. de 2012
Respostas 6
Participantes 3