布尔组件和渲染组件在我的视图上不适用

  • 本文关键字:组件 视图 不适用 布尔 jsf
  • 更新时间 :
  • 英文 :


您好!我在JSF方面遇到了困难(一定是这项技术,因为这是我当时在家学习的内容)我在设置布尔值组件和根据类型呈现显示形式时遇到了麻烦。这两种情况如下:

1) 布尔组件

代码在我的[比特桶链接][1]上。我不知道为什么,但编辑器未能捕获我的降价代码。我放置了The code into here,但在@anotations上失败。

〔我的比特桶链接〕〔1〕

(Local.java)

package model;
import javax.persistence.DiscriminatorColumn;
import javax.persistence.DiscriminatorType;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Inheritance;
import javax.persistence.InheritanceType;
import javax.persistence.Table;
@Entity
@Table(name="local")
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name = "Local_Type", discriminatorType = DiscriminatorType.STRING)
public abstract class Local {
    @Id @GeneratedValue(strategy=GenerationType.SEQUENCE)
    private long id;
    private String nome;
    private String zona;
    private String bairro;
    private String rua;
    private String numero;
    private String cep;
    private boolean disponivel;
    public long getId() {
        return id;
    }
    public void setId(long id) {
        this.id = id;
    }
    public String getZona() {
        return zona;
    }
    public void setZona(String zona) {
        this.zona = zona;
    }
    public String getBairro() {
        return bairro;
    }
    public void setBairro(String bairro) {
        this.bairro = bairro;
    }
    public String getRua() {
        return rua;
    }
    public void setRua(String rua) {
        this.rua = rua;
    }
    public String getNumero() {
        return numero;
    }
    public void setNumero(String numero) {
        this.numero = numero;
    }
    public String getCep() {
        return cep;
    }
    public void setCep(String cep) {
        this.cep = cep;
    }
    public boolean isDisponivel() {
        return disponivel;
    }
    public void setDisponivel(boolean disponivel) {
        this.disponivel = disponivel;
    }
    public String getNome() {
        return nome;
    }
    public void setNome(String nome) {
        this.nome = nome;
    }
}

(LocalPublico.java)

package model;
import javax.persistence.DiscriminatorValue;
import javax.persistence.Entity;

@Entity
@DiscriminatorValue("local_publico")
public class LocalPublico extends Local{    
}

(LocalPublicoBean)

package controller;
import javax.faces.bean.ManagedBean;
import model.LocalPublico;
import dao.DAO;
@ManagedBean
public class LocalPublicoBean {
    private LocalPublico localPublico = new LocalPublico();
    public LocalPublico getLocalPublico() {
        return this.localPublico;
    }
    public void gravar() {
        System.out.println("Gravando evento " + localPublico.getNome()
                + " no banco de dados.");
        new DAO<LocalPublico>(LocalPublico.class).adiciona(this.localPublico);
        System.out.println("Evento " + localPublico.getNome()
                + " gravado no banco.");
        LocalPublico cid = new LocalPublico();
    }
}

(LocalPrivado)

package model;
import javax.persistence.DiscriminatorValue;
import javax.persistence.Entity;
@Entity
@DiscriminatorValue("local_privado")
public class LocalPrivado extends Local{
    private double preco;
    public double getPreco() {
        return preco;
    }
    public void setPreco(double preco) {
        this.preco = preco;
    }
}

package controller;
import javax.faces.bean.ManagedBean;
import model.LocalPrivado;
import dao.DAO;
@ManagedBean
public class LocalPrivadoBean {
    private LocalPrivado localPrivado = new LocalPrivado();
    public LocalPrivado getLocalPublico() {
        return this.localPrivado;
    }
    public void gravar() {
        System.out.println("Gravando evento " + localPrivado.getNome()
                + " no banco de dados.");
        new DAO<LocalPrivado>(LocalPrivado.class).adiciona(this.localPrivado);
        System.out.println("Evento " + localPrivado.getNome()
                + " gravado no banco.");
        LocalPrivado cid = new LocalPrivado();
    }
}

问题:

我想设置"0"的值;可用(布尔)";。以下是我在xhtml中的操作。

但是,组件h:selectOneRadio不会出现!

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:f="http://java.sun.com/jsf/model.core"
    xmlns:h="http://java.sun.com/jsf/html">
<head>
<title>Local</title>
</head>
<body>
    <h:form>
        <h:panelGrid>
            <fieldset>
                <legend>Cadastro de Local Público</legend>
                <h:panelGrid columns="2">
                    <h:outputLabel value="Nome: " for="nome" />
                    <h:inputText id="nome"
                        value="#{localPublicoBean.localPublico.nome}" />
                    <h:outputLabel value="C.E.P.:" for="cep" />
                    <h:inputText id="cep" value="#{localPublicoBean.localPublico.cep}" />
                    <h:outputLabel value="Disponível: " for="is_disponivel" />
                    <h:selectOneRadio id="is_disponivel"
                        value="#{localPublicoBean.localPublico.disponivel}">
                        <f:selectItem itemLabel="true" itemValue="#{true}" />
                        <f:selectItem itemLabel="false" itemValue="#{false}" />
                    </h:selectOneRadio>
                </h:panelGrid>
            </fieldset>

        </h:panelGrid>
    </h:form>
</body>
</html>

2) 实物位置的渲染:

我想创建一个主页,在那里你有一个组件,你可以选择这个地方是公共的还是私人的。如果该网站是公共的,我会提供一个带有publico.xhtml页面的panelGrid,该页面显示在上面或其内容中。如果这个地方是私人的,我会提供一个带有privado.xhtml页面或其内容的panelGrid。我还没有做这个页面,但会非常类似publico.xhtml.

我想到了一个很好的LocalBean类。

package controller;
import javax.faces.bean.ManagedBean;
@ManagedBean
public class LocalBean {
    private String tipo = new String();

    public String getPublico(){
        return "publico";
    }
    public String getPrivado(){
        return "privado";
    }
    public String getTipo(){
        return this.tipo;
    }

}

以及xhtml:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://xmlns.jcp.org/jsf/html"
      xmlns:f="http://xmlns.jcp.org/jsf/core"
      xmlns:my="http://java.sun.com/jsf/composite/my">
<f:view>
    <!-- colocar aqui código para saber se página é pública ou privada -->
    <my:if condition="#{localBean.privado.equalsIgnoreCase(localBean.publico)}">
        <f:facet name="then">
            <!-- INCORPORAR PÁGINA publico.xhtml aqui -->
        </f:facet>
        <f:facet name="else">
            <!-- INCORPORAR PÁGINA privado.xhtml aqui -->
        </f:facet>
    </my:if>
</f:view>
</html>

我不知道怎么做!!!!

有人能帮我吗?

谢谢!!!

首先,您可以为selectItem 尝试此xhtml代码

<f:selectItem itemLabel="true" itemValue="true" />
<f:selectItem itemLabel="false" itemValue="false" />

最新更新