Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf <;h:命令按钮>;不调用操作_Jsf_Jsf 2 - Fatal编程技术网

Jsf <;h:命令按钮>;不调用操作

Jsf <;h:命令按钮>;不调用操作,jsf,jsf-2,Jsf,Jsf 2,我有点问题。基本上,我有一个带有表单的页面,其中包含一个输入文本字段、一个搜索按钮和一个ui:repeat结构,该结构使用更多的输入文本字段和几个其他按钮显示搜索结果(想法是列出所有搜索点击,并允许用户直接从同一页面编辑它们)。现在,搜索和显示部分工作得很好-它做了它应该做的。但是,当我尝试单击ui:repeat部分中显示的一个按钮时,不会调用该操作 当我按下搜索按钮(代码中的Pretraga)时,kupacbean中会调用一个函数,然后从数据库中获取结果并将其放入列表,最后重定向回同一页面(据

我有点问题。基本上,我有一个带有表单的页面,其中包含一个输入文本字段、一个搜索按钮和一个ui:repeat结构,该结构使用更多的输入文本字段和几个其他按钮显示搜索结果(想法是列出所有搜索点击,并允许用户直接从同一页面编辑它们)。现在,搜索和显示部分工作得很好-它做了它应该做的。但是,当我尝试单击ui:repeat部分中显示的一个按钮时,不会调用该操作

当我按下搜索按钮(代码中的Pretraga)时,kupacbean中会调用一个函数,然后从数据库中获取结果并将其放入列表,最后重定向回同一页面(据我所知,这将再次加载页面),并使用ui:repeat组件列出结果。但正如我所说,当我按下其他按钮(代码中的Izmeni和Glavna)时,它们什么也不做。Kupac bean是
@RequestScoped
,我已经尝试将其更改为
@viewscope
,但是这只会使搜索无法正常工作而使情况变得更糟(即,它将不显示任何内容)

以下是JSF页面代码:

<?xml version='1.0' encoding='UTF-8' ?>
<!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:h="http://xmlns.jcp.org/jsf/html"
      xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
      xmlns:f="http://xmlns.jcp.org/jsf/core">
    <h:head>
        <title>Pregled kupaca</title>
    </h:head>
    <h:body>
        <h3 align="center">Pregled kupaca</h3>
        <h:form>
            <table align="center">
                <tr>
                    <td align="center" colspan="2"><h:link outcome="pocetna.xhtml">Pocetna</h:link></td>
                </tr>
                <tr>
                    <td>Firma</td>
                    <td><h:inputText value="#{kupac.naziv_firme}"/></td>
                </tr>
                <tr>
                    <td align="center" colspan="2">
                        <h:commandButton action="#{kupac.listKupci()}" value="Pretraga">
                        </h:commandButton>                    
                    </td>
                </tr>
            </table>
            <br/>
            <ui:repeat value="#{kupac.zeljeni_kupci}" var="kupac">
                <table align="center" border="1">
                    <tr>
                        <td>Ime i prezime</td>
                        <td><h:inputText 
                                required="true"
                                requiredMessage="Niste uneli ime i prezime!"
                                value="#{kupac.ime_prezime}"/></td>
                    </tr>
                    <tr>
                        <td>Adresa</td>
                        <td><h:inputText 
                                required="true"
                                requiredMessage="Niste uneli adresu!"
                                value="#{kupac.adresa}"/></td>
                    </tr>
                    <tr>
                        <td>Naziv firme</td>
                        <td><h:inputText 
                                required="true"
                                requiredMessage="Niste uneli naziv firme!"
                                value="#{kupac.naziv_firme}"/></td>
                    </tr>
                    <tr>
                        <td>Adresa firme</td>
                        <td><h:inputText 
                                required="true"
                                requiredMessage="Niste uneli adresu firme!"
                                value="#{kupac.adresa_firme}"/></td>
                    </tr>
                    <tr>
                        <td>Br. telefona</td>
                        <td><h:inputText 
                                required="true"
                                requiredMessage="Niste uneli broj telefona!"
                                value="#{kupac.br_tel}"/></td>
                    </tr>
                    <tr>
                        <td>
                            <h:commandButton value="Izmeni" action="#{kupac.izmenaKupca()}"/>
                        </td>
                        <td><h:commandButton action="#{kupac.test()}" value="Glavna"/></td>
                    </tr>
                </table>
            <br/><br/>
            </ui:repeat>
        </h:form>
    </h:body>
</html>

妊娠库帕卡
妊娠库帕卡
波切特纳
菲尔马

我是普雷齐姆 肾上腺 纳齐夫公司 硬肾上腺 比尔。电传

下面是Java中的完整bean代码:

package beans;

import exceptions.DBException;
import java.io.Serializable;
import java.util.LinkedList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.bean.ViewScoped;
import util.Database;

@ManagedBean
@RequestScoped
public class Kupac implements Serializable {

    private int id_kupac;
    private String ime_prezime;
    private String adresa;
    private String naziv_firme;
    private String adresa_firme;
    private String br_tel;
    private List<Kupac> svi_kupci;
    private List<Kupac> zeljeni_kupci;

    public void init() {
        listKupci();
    }

    public void poruka() {
        System.out.println("ID "+id_kupac);
    }

    public String test() {
        return "pocetna";
    }

    public String izmenaKupca() throws DBException {
        Kupac kupac = new Kupac();
        Database db = Database.getInstance();

        kupac.setId_kupac(id_kupac);
        kupac.setIme_prezime(ime_prezime);
        kupac.setAdresa(adresa);
        kupac.setNaziv_firme(naziv_firme);
        kupac.setAdresa_firme(adresa_firme);
        kupac.setBr_tel(br_tel);

        try {
            db.updateKupac(kupac);
        } catch (DBException ex) {
            return "error";
        }
        return "pregled_kupaca";
    }

    public String unosKupca() throws DBException {
        Kupac kupac = new Kupac();
        Database db = Database.getInstance();

        kupac.setIme_prezime(ime_prezime);
        kupac.setAdresa(adresa);
        kupac.setNaziv_firme(naziv_firme);
        kupac.setAdresa_firme(adresa_firme);
        kupac.setBr_tel(br_tel);

        try {
            db.insertKupac(kupac);
        } catch (DBException ex) {
            return "error";
        }

        return "pocetna";
    }

    public String listKupci() {
        Database db = Database.getInstance();
        zeljeni_kupci = new LinkedList<Kupac>();
        try {
            svi_kupci = db.listKupci();
            for (Kupac k : svi_kupci) {
                if (k.naziv_firme.equals(naziv_firme) || "".equals(naziv_firme)) {
                    zeljeni_kupci.add(k);
                }
            }
        } catch (DBException ex) {
            return "error";
        }
        return "pregled_kupaca";
    }

    public List<Kupac> getZeljeni_kupci() {
        return zeljeni_kupci;
    }

    public void setZeljeni_kupci(List<Kupac> zeljeni_kupci) {
        this.zeljeni_kupci = zeljeni_kupci;
    }

    public List<Kupac> getSvi_kupci() {
        return svi_kupci;
    }

    public void setSvi_kupci(List<Kupac> svi_kupci) {
        this.svi_kupci = svi_kupci;
    }

    public int getId_kupac() {
        return id_kupac;
    }

    public void setId_kupac(int id_kupac) {
        this.id_kupac = id_kupac;
    }

    public String getIme_prezime() {
        return ime_prezime;
    }

    public void setIme_prezime(String ime_prezime) {
        this.ime_prezime = ime_prezime;
    }

    public String getAdresa() {
        return adresa;
    }

    public void setAdresa(String adresa) {
        this.adresa = adresa;
    }

    public String getNaziv_firme() {
        return naziv_firme;
    }

    public void setNaziv_firme(String naziv_firme) {
        this.naziv_firme = naziv_firme;
    }

    public String getAdresa_firme() {
        return adresa_firme;
    }

    public void setAdresa_firme(String adresa_firme) {
        this.adresa_firme = adresa_firme;
    }

    public String getBr_tel() {
        return br_tel;
    }

    public void setBr_tel(String br_tel) {
        this.br_tel = br_tel;
    }

    /**
     * Creates a new instance of Kupac
     */
    public Kupac() {
    }
}
packagebean;
导入异常.DBException;
导入java.io.Serializable;
导入java.util.LinkedList;
导入java.util.List;
导入java.util.logging.Level;
导入java.util.logging.Logger;
导入javax.faces.bean.ManagedBean;
导入javax.faces.bean.RequestScope;
导入javax.faces.bean.ViewScoped;
导入util.Database;
@ManagedBean
@请求范围
公共类Kupac实现了可序列化{
私人国际身份证;
私有字符串ime_prezime;
私有字符串地址;
私有字符串naziv__firme;
私有字符串地址;
私人电话;
私有列表svi_kupci;
私人名单zeljeni_kupci;
公共void init(){
listKupci();
}
公共空间poruka(){
System.out.println(“ID”+ID_kupac);
}
公共字符串测试(){
返回“pocetna”;
}
公共字符串izmenaKupca()引发DBException{
Kupac Kupac=新的Kupac();
Database db=Database.getInstance();
kupac.setId_kupac(id_kupac);
kupac.setIme_prezime(ime_prezime);
长柄库帕克(adresa);
kupac.setNaziv_firme(naziv_firme);
kupac.setAdresa_firme(adresa_firme);
kupac.setBr_电话(br_电话);
试一试{
db.updateKupac(库帕克);
}捕获(dbex异常){
返回“错误”;
}
返回“pregled_kupaca”;
}
公共字符串unosKupca()引发DBException{
Kupac Kupac=新的Kupac();
Database db=Database.getInstance();
kupac.setIme_prezime(ime_prezime);
长柄库帕克(adresa);
kupac.setNaziv_firme(naziv_firme);
kupac.setAdresa_firme(adresa_firme);
kupac.setBr_电话(br_电话);
试一试{
db.insertKupac(kupac);
}捕获(dbex异常){
返回“错误”;
}
返回“pocetna”;
}
公共字符串listKupci(){
Database db=Database.getInstance();
zeljeni_kupci=新链接列表();
试一试{
svi_kupci=db.listKupci();
用于(Kupac k:svi_kupci){
如果(k.naziv_firme.equals(naziv_firme)| | |“.equals(naziv_firme)){
zeljeni_kupci.加(k);
}
}
}捕获(dbex异常){
返回“错误”;
}
返回“pregled_kupaca”;
}
公共列表getZeljeni_kupci(){
返回zeljeni_kupci;
}
公共无效设置zeljeni_kupci(列出zeljeni_kupci){
this.zeljeni_kupci=zeljeni_kupci;
}
公共列表getSvi_kupci(){
返回svi_kupci;
}
公共无效设置svi_kupci(列表svi_kupci){
this.svi_kupci=svi_kupci;
}
公共int getId_kupac(){
返回id_kupac;
}
公共无效设置id_kupac(内部id_kupac){
this.id_kupac=id_kupac;
}
公共字符串getIme_prezime(){
返回ime_prezime;
}
public void setIme\u prezime(字符串ime\u prezime){
this.ime\u prezime=ime\u prezime;
}
公共字符串getAdresa(){
返回肾上腺;
}
公共无效setAdresa(字符串adresa){
这个。adresa=adresa;
}
公共字符串getNaziv_firme(){
返回naziv_公司;
}
公共无效集合固定(字符串固定){
this.naziv_firme=naziv_firme;
}
公共字符串getAddressa_firme(){
返回地址确认;
}
公共无效设置地址(字符串地址){
this.adresa_firme=adresa_firme;
}
公共字符串getBr_tel(){
返回br_电话;
}
公共空间