目标无法访问的标识符''已解析为null

时间:2017-09-10 16:47:05

标签: java primefaces jsf-2 cdi netbeans-8

我知道有很多关于这个问题的SO问题,但是我到处冲浪并尝试了所有可能的解决方案无济于事。

我正在尝试使用GlassFish 4.1.1部署一个小应用程序。应用程序成功构建和部署,但是当我单击命令按钮提交表单时,我收到以下错误

enter image description here

我正在使用CDI通过@Named注释来管理Java bean。我正在使用Java EE 7,所以我认为没有必要使用beans.xml文件,但我手动创建了一个并将其放在WEB-INF目录中,我仍然遇到了同样的错误。

也许这是有用的信息:我使用JavaServer Faces作为我的Web应用程序的框架。但是,下图不同,我屏幕上的JavaServer Faces配置显示为灰色并锁定。它不允许我选择任何选项卡(库,配置,组件),因此我不能选择Primefaces作为我的应用程序设置的JSF组件套件。我认为这不会是一个问题,因为我已经下载了PrimeFaces 6.1.4 jar并将其放在我的应用程序的Libraries文件夹中。

enter image description here

JSF Managed Bean类文件:

import javax.inject.Named;
import javax.enterprise.context.SessionScoped;
import java.io.Serializable;

@Named(value = "autoLoan")
@SessionScoped
public class AutoLoan implements Serializable {

     /* The values of these private properties are supplied by the user */
    private float principalAmount;      // = P
    private float interestRatePercent;
    private float numberOfYears;        // = y

    /* The values of these private properties are computed in calculateLoan() */
    private double monthlyPayment;       // = M
    private double totalInterest;

    /**
     * Creates a new instance from the AutoLoan class
     */
    public AutoLoan() {

    }
    .
    .
    .

(我有所有领域的getter和setter)

index.xhtml文件,我试图引用bean:

 <!-- Column 2 -->
 <h:inputText id="principal"
         label="Principal Amount Borrowed Input Text Field"
         value="#{autoLoan.principalAmount}"
         required="true"
         styleClass="loanText">
     <f:validateDoubleRange minimum="1000" maximum="1000000"></f:validateDoubleRange>
 </h:inputText>

请告诉我

0 个答案:

没有答案