1

いくつかの値の下に黄色い線が表示されていますunkown property values

<p:spinner min="1" max="50" value="#{printerSettings.p}" size ="1"> <!-- allows the user a choice of up to 50, this is more than enough for any situation, if needed this can be removed or raised -->
                        <p:ajax update="p"/>
                    </p:spinner>
                    <br></br>
                    <br></br>
                    <h:outputText value="Copies that will be printed: &nbsp; #{printerSettings.p}" id="p"/>
                    <br></br>
                    <br></br>


                    Double sided?: 

                    <br></br>
                    <br></br>

                    Paper Size : 
                    <h:selectOneMenu value="#{printerSettings.selectedPaper}">
                        <f:selectItems value="#{printerSettings.selectedPaperValue}" />
                    </h:selectOneMenu> 

                    <br></br>
                    <br></br>

                    What time would you like the printer to print out your work ?, please enter the minutes after midnight :  
                    <br></br>

                    <br></br>
                    <p:inputText id="timeToPrint" value="#{printerSettings.timeToPrint}" />
                    <br></br>

printerSettings.p完全に正常に動作します。これらの黄色い線が下にあります。奇妙なことにprinterSettings.selectedPaper、Beanから情報を取得するため、印刷時間のデフォルト値として2000が表示され、メニューに3つのオプションが表示されます。これはなぜですか。これをしますか?何か問題がありますか?printerSettings.selectedPaperValueprinterSettings.timeToPrint

これが私のfaces-configです

   <managed-bean>
        <managed-bean-name>printerSettings</managed-bean-name>
        <managed-bean-class>richard.fileupload.PrinterSettings</managed-bean-class>
        <managed-bean-scope>request</managed-bean-scope>
    </managed-bean>

そしてこれは私の豆です

public class PrinterSettings {

//@NotNull(message = "Please enter a time to print ")
    private int timeToPrint = 2000;
    private int p = 1; //sets default value
    private int time;
    public String selectedPaper = "A4"; // defualts to A4

    public int gettimeToPrint() {
        return (timeToPrint);
    }

    public void settimeToPrint(int timeToPrint1) {
        this.timeToPrint = timeToPrint1;
    }

    public int getP() {
        return (p);
    }

    public void setP(int p1) {
        this.p = p1;
    }

    public int gettime() {
        return (time);
    }

    public void settime(int time) {
        this.time = time;
    }

    public String getselectedPaper() {
        return selectedPaper;
    }
    private static Map<String, Object> paperValue;

    static {
        paperValue = new LinkedHashMap<String, Object>();
        paperValue.put("A5", "A5"); //right hand side is value, may need to change this later on to make compatable with the printers
        paperValue.put("A4", "A4");
        paperValue.put("A3", "A3");
    }

    public Map<String, Object> getselectedPaperValue() {
        return paperValue;
    }
}

また、Beanで、paperValue.putビットの下に、初期化中の非静的変数の使用を示す黄色の線が表示されていることに気付きました。

4

1 に答える 1

2

"unknown property in value"PrinterSettings Beanのプロパティのゲッターとセッターの名前が間違っているため、警告が表示されると思います。selectedPaperプロパティの場合、ゲッター名はgetSelectedPaperであり、セッター名はsetSelectedPaperである必要があります。selectedPaperValueプロパティの場合、ゲッター名はgetSelectedPaperValueであり、セッター名はsetSelectedPaperValueである必要があります。timeToPrintプロパティの場合、ゲッター名はgetTimeToPrintで、セッター名はsetTimeToPrintである必要があります。

セッターの名前は、set+最初の大文字のプロパティの名前から開始する必要があります。ゲッターの名前は、get+プロパティの名前から最初の大文字で始める必要があります。

JSFは、ゲッターとセッターを使用してPOJOのプロパティにアクセスします。

于 2013-02-10T10:13:53.327 に答える