jsf - 调用有状态会话 Bean 后目标不可达
问题描述
所以,基本上我创建了 xhtml 文件和与该 xhtml 一起使用的 JSF 托管 bean。一切正常。但后来,我不得不在 JSF 托管 bean 文件中调用 Stateful Session Bean 并使用它的方法。由于我使用 NetBeans IDE,所以我调用了 SSB(右键单击->插入代码->调用企业 bean)。在调用它之后,由于某种原因,我现在得到了目标无法访问的错误(我什至还没有调用它的任何方法)。
这是 xhtml 文件:
<?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:f="http://xmlns.jcp.org/jsf/core"
xmlns:p="http://primefaces.org/ui">
<h:head>
<title>Početna stranica</title>
</h:head>
<h:body onload="#{korisnikIndex.dohvatiSveKorisnike()}">
<h:form style="display:#{korisnikIndex.uspjesnaPrijava}" >
<h:link value="Upravljanje Aerodromima " outcome="upravljanjeAerodromima.xhtml"/>
<br></br>
<h:link value="Upravljanje letovima" outcome="upravljanjeLetovima.xhtml"/>
<br></br>
<h:link value="Napredne stavke aerodroma" outcome="napredneStavkeAerodroma.xhtml"/>
<br></br>
<h:link value="Pregled poruka" outcome="pregledPoruka.xhtml"/>
<br></br>
<h:link value="Pregled dnevnika" outcome="pregledDnevnika.xhtml"/>
</h:form >
<h:form >
Prijava
<h:panelGrid columns="2">
<h:outputLabel value="Korisničko ime:" style="font-weight: bold;"/>
<h:inputText value="#{korisnikIndex.prijavljeniKorisnikKorime}"/>
<h:outputLabel value="Lozinka:" style="font-weight: bold;"/>
<h:inputSecret value="#{korisnikIndex.prijavljeniKorisnikLozinka}"/>
</h:panelGrid>
<br></br>
<h:commandButton value="Prijavi se"
id="gumbPrijava"
action="#{korisnikIndex.prijavaKorisnika()}">
</h:commandButton>
<br></br>
Registracija
<h:panelGrid columns="2">
<h:outputLabel value="Ime:" style="font-weight: bold;"/>
<h:inputText value="#{korisnikIndex.ime}"/>
<h:outputLabel value="Prezime:" style="font-weight: bold;"/>
<h:inputText value="#{korisnikIndex.prezime}"/>
<h:outputLabel value="E-mail adresa:" style="font-weight: bold;"/>
<h:inputText value="#{korisnikIndex.email}"/>
<h:outputLabel value="Korisničko ime:" style="font-weight: bold;"/>
<h:inputText value="#{korisnikIndex.korime}"/>
<h:outputLabel value="Lozinka:" style="font-weight: bold;"/>
<h:inputSecret value="#{korisnikIndex.lozinka}"/>
<h:outputLabel value="Ponovljena lozinka:" style="font-weight: bold;"/>
<h:inputSecret value="#{korisnikIndex.ponovljenaLozinka}"/>
</h:panelGrid>
<br></br>
<h:commandButton value="Registriraj se"
id="gumbRegistracija"
action="#{korisnikIndex.registracijaKorisnika()}"/>
</h:form>
<h:form style="display:#{korisnikIndex.uspjesnaPrijava}">
Ažuriranje podataka
<h:panelGrid columns="2">
<h:outputLabel value="Ime:" style="font-weight: bold;"/>
<h:inputText value="#{placeholder}"/>
<h:outputLabel value="Prezime:" style="font-weight: bold;"/>
<h:inputText value="#{placeholder}"/>
<h:outputLabel value="E-mail adresa:" style="font-weight: bold;"/>
<h:inputText value="#{placeholder}"/>
<h:outputLabel value="Korisničko ime:" style="font-weight: bold;"/>
<h:inputText value="#{placeholder}"/>
<h:outputLabel value="Lozinka:" style="font-weight: bold;"/>
<h:inputSecret value="#{placeholder}"/>
<h:outputLabel value="Ponovljena lozinka:" style="font-weight: bold;"/>
<h:inputSecret value="#{placeholder}"/>
</h:panelGrid>
<br></br>
<h:commandButton value="Ažuriraj"
id="gumbAzuriranje"
action="#{placeholder.sakrijElement()}"/>
Pregled korisnika
<p:dataTable id="lista" var="dohvaceniKorisnik" value="#{korisnikIndex.listaKorisnika}"
paginator="true" rows="4"
paginatorTemplate="{CurrentPageReport} {FirstPageLink}
{PreviousPageLink} {PageLinks} {NextPageLink}
{LastPageLink} {RowsPerPageDropdown}" style="width:800px;">
<p:column headerText="Ime">
<h:outputText value="#{dohvaceniKorisnik.ime}"/>
</p:column>
<p:column headerText="Prezime">
<h:outputText value="#{dohvaceniKorisnik.prezime}"/>
</p:column>
<p:column headerText="Korisničko ime">
<h:outputText value="#{dohvaceniKorisnik.korime}"/>
</p:column>
<p:column headerText="E-mail">
<h:outputText value="#{dohvaceniKorisnik.email}"/>
</p:column>
</p:dataTable>
</h:form>
</h:body>
</html>
这是上面用于 xhtml 的 JSF 托管 bean(现在,我没有粘贴所有内容,因为它太大了。只有代码的上半部分。注意 @EJB 符号并在它下面调用有状态会话 Bean。一旦我删除那些,由于某种原因一切正常:
@Named(value = "korisnikIndex")
@SessionScoped 公共类 KorisnikIndex 实现 Serializable {
@EJB
private Autentikacija autentikacija;
/**
* Creates a new instance of KorisnikIndex
*/
private String ime;
private String prezime;
private String korime;
private String lozinka;
private String email;
private String poruka = "";
private String azuriranoIme;
private String azuriranoPrezime;
private String azuriranoKorime;
private String azuriranoLozinka;
private String azuriranoEmail;
private String azuriranoPonovljenaLozinka;
private String prijavljeniKorisnikKorime;
private String prijavljeniKorisnikLozinka;
private String uspjesnaPrijava = "none";
我认为不需要从托管 bean 编写整个代码,因为在删除 @EJB 后evertyhing 工作正常......但如果需要,我会发布所有内容。
这是整个错误:
/index.xhtml @26,82 value="#{korisnikIndex.prijavljeniKorisnikKorime}":目标无法到达,标识符“korisnikIndex”解析为空
谢谢你的帮助。
解决方案
推荐阅读
- c++ - 如何在 mac 上为 c++ 加载文件
- php - `FCM` & `APN` 允许并行连接多少个
- asp.net - 我可以通过在 ASP.Net 编写的 VB.net 中单击按钮将新行添加到数据网格视图吗
- python - 异常阻止 webdriver 正确响应
- java - 从数据库写入 json 数组对象
- python - GCP 情绪分析为 17 个不同的文档返回相同的分数,我做错了什么?
- python - 关于 GridSpec 子图的问题
- html - 带有小部件“SelectMultiple”的 django-filter 字段从传递的查询集中提供预选值
- javascript - CSS3 旋转延迟
- graphql - 您如何使用具有多个突变的自定义文件正确播种 prisma DB?