JSF-2.3 找不到我的 @Named CDI-1.2 托管 bean [英] JSF-2.3 not finding my @Named CDI-1.2 managed bean
本文介绍了JSF-2.3 找不到我的 @Named CDI-1.2 托管 bean的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
最近从 2.2 升级到 JSF 2.3,我注意到 @ManagedBean 已被弃用,经过一些研究发现我应该使用 CDI-1.2 托管 bean 和 @Named 注释.
但是在切换到@Named 之后,JSF 页面找不到托管 bean:
<块引用>javax.servlet.ServletException:/index.xhtml @38,38 value="#{controller.telstraPass}": Target Unreachable, identifier 'controller' 解析为 null
我正在使用 Maven、eclipse 和 WebSphere Application Server Liberty v16.0.0.4不知道我做错了什么,以下是相关文件:
Controller.java:
package ManagedBeans;导入 java.io.PrintWriter;导入 java.io.Serializable;导入 java.io.StringWriter;导入 javax.enterprise.context.SessionScoped;导入 javax.inject.Named;导入 javax.servlet.http.Part;导入 Main.FileHandler;导入 Main.IBMEmployee;@Named("控制器")@SessionScoped公共类控制器实现可序列化{私人部分 telstraCustomersFile;私有部分终止文件;私人字符串 telstraPass;私人字符串 termineesPass;私有字符串异常;私有字符串异常跟踪;private FileHandler fileHandler = new FileHandler();私有 IBMEmployee[] 潜在匹配;公共字符串执行(){尝试 {fileHandler.process(telstraCustomersFile, terminateesFile, telstraPass, termineesPass);potentialMatches = fileHandler.potentialMatches;}捕获(异常前){StringWriter 错误 = new StringWriter();ex.printStackTrace(new PrintWriter(errors));异常 = ex.toString();exceptionTrace = errors.toString();return ("errorPage.xhtml");}return ("searchExcel.xhtml");}public void setTelstraPass(String value) { telstraPass = value;}公共字符串 getTelstraPass() { 返回 telstraPass;}public void setTermineesPass(String value) { termineesPass = value;}公共字符串 getTermineesPass() { 返回 termineesPass;}public void setTelstraCustomersFile(Part file) { telstraCustomersFile = file;}公共部分 getTelstraCustomersFile() { return telstraCustomersFile;}public void setTerminateesFile(Part file) { terminateesFile = file;}公共部分 getTerminateesFile() { return terminateesFile;}public String getException() { 返回异常;}公共字符串 getExceptionTrace() { 返回异常跟踪;}公共 IBMEmployee[] getExactMatches() { return fileHandler.exactMatches;}公共 IBMEmployee[] getPotentialMatches() { return potentialMatches;}}
index.xhtml:
<html xmlns="http://www.w3.org/1999/xhtml"xmlns:h="http://java.sun.com/jsf/html"xmlns:f="http://java.sun.com/jsf/core"><h:头><title>终止清单</title><h:outputScript name="js/scripts.js"/><h:outputStylesheet name="css/PageFormat.css"/>由 Jerry Boyaji 创建<h:graphicImage id="IBMLogo" name="images/IBM-logo.jpg" width="101" height="48"/></h:head><h:body onload="enableDisableSubmitBtn()"><div id="ContentFrame"><h1>公司账户终止申请 (CATA)</h1><h3>Excel 搜索:<br/>选择要上传的电子表格文件:</h3><br/><br/><h:form id="excelInputForm" enctype="multipart/form-data"名称=上传表格"方法=发布">Telstra电子表格文件:<br/><h:输入文件id="telstraCustomers"名称=telstra 文件"大小=40"value="#{controller.telstraCustomersFile}"必需=真"onchange="enableDisableSubmitBtn()"/>密码(如果适用):<h:inputSecretid="telstraSpreadsheetPassword"value="#{controller.telstraPass}"label="密码(如果适用)"/><br/><br/>终止电子表格文件:<br/><h:输入文件id="终止"名称=终止文件"大小=40"value="#{controller.terminateesFile}"必需=真"onchange="enableDisableSubmitBtn()"/>密码(如果适用):<h:inputSecretid="termineesSpreadsheetPassword"value="#{controller.termineesPass}"label="密码(如果适用)"/><br/><br/><h:命令按钮id="提交"值="上传并继续"类型=提交"action="#{controller.perform}"/></h:form>
</h:body>