2012-08-02 70 views
1

我想創建一個基本的表與JSF 2.0發送「時間表」條目到數據庫。我寫我的豆與getter和setter方法的所有領域,並設法通過的faces-config中的豆,但我一直運行到錯誤:
"com.sun.faces.mgbean.ManagedBeanCreationException: Unable to set property monday1 for managed bean timesheet"無法設置屬性_託管bean _ JSF 2.0

屬性名稱是無關緊要的,它只是在上市首財產在faces-config中。我的整個屬性都不起作用。

下面是HTML/JSF表:

<h:form> 
      <table> 
       <thead> 
        <tr> 
         <th>Employee Details</th> 
         <th id="reqBox" colspan="2"> 
          <span class="reqStar">*</span> 
          <span class="reqText">Required Field</span> 
         </th> 
        </tr> 
       </thead> 
       <tbody> 
        <tr> 
         <td> 
          Employee ID <br /> 
          <input name="empID" type="text" value="#{userBean.id}" readonly="readonly"/> 
         </td> 
         <td> 
          Employee Name <br /> 
          <input name="empName" type="text" value="#{userBean.firstName} #{userBean.lastName}" readonly="readonly" /> 
         </td> 
         <td> 
          Week Starting <span class="reqStar">*</span> <br /> 
          <input name="weekOf" type="text" value="" /> 
          <a href="javascript:NewCal('demo1','mmddyyyy')">&nbsp; 
           <img src="images/cal.gif" border="0" alt="Pick a date" width="16" height="16" /> 
          </a> 
         </td> 
        </tr> 
        <tr class="whiteSpacerRow"></tr> 
       </tbody> 
      </table> 
      <table class="content" border="1" rules="none" frame="box" cellpadding="0" cellspacing="0"> 
       <thead> 
        <tr> 
         <th colspan="10">Record Timesheet</th> 
        </tr> 
        <tr class="header"> 
         <td>Task</td> 
         <td>Monday</td> 
         <td>Tuesday</td> 
         <td>Wednesday</td> 
         <td>Thursday</td> 
         <td>Friday</td> 
         <td>Saturday</td> 
         <td>Sunday</td> 
         <td>Total Hours</td> 
        </tr> 
       </thead> 
       <tbody> 
        <tr class="dateRow"> 
         <td class="blank"></td> 
         <td id="monday"></td> 
         <td id="tuesday"></td> 
         <td id="wednesday"></td> 
         <td id="thursday"></td> 
         <td id="friday"></td> 
         <td id="saturday"></td> 
         <td id="sunday"></td> 
        </tr> 
        <tr id="input_row_1"> 
         <td> 
          <select name="select_1"> 
           <option>-Select One-</option> 
           <option value="Development">Regular Hours</option> 
           <option value="Vacation">Paid Vacation</option> 
           <option value="LOSSOFPAY">Unpaid Vacation</option> 
           <option value="REMOTE">Remote Work</option> 
          </select> 
         </td> 
         <td id="mondayInput1"> 
          <h:inputText id="monday1" size="4" value="#{timesheet.monday1}" required="false" /> 
          <!-- <input name="monday1" class="smallInput" type="number" size="2" maxlength="4" min="0"/> --> 
         </td> 
         <td id="tuesdayInput1"> 
          <h:inputText id="tuesday1" size="4" value="#{timesheet.tuesday1}" required="false" /> 
          <!--<input name="tuesday1" class="smallInput" type="number" size="2" maxlength="4" min="0"/> --> 
         </td> 
         <td id="wednesdayInput1"> 
          <h:inputText id="wednesday1" size="4" value="#{timesheet.wednesday1}" required="false" /> 
          <!--<input name="wednesday1" class="smallInput" type="number" size="2" maxlength="4" min="0"/> --> 
         </td> 
         <td id="thursdayInput1"> 
          <h:inputText id="thursday1" size="4" value="#{timesheet.thursday1}" required="false" /> 
          <!--<input name="thursday1" class="smallInput" type="number" size="2" maxlength="4" min="0"/> --> 
         </td> 
         <td id="fridayInput1"> 
          <h:inputText id="friday1" size="4" value="#{timesheet.friday1}" required="false" /> 
          <!--<input name="friday1" class="smallInput" type="number" size="2" maxlength="4" min="0"/> --> 
         </td> 
         <td id="saturdayInput1"> 
          <h:inputText id="saturday1" size="4" value="#{timesheet.saturday1}" required="false" /> 
          <!--<input name="saturday1" class="smallInput" type="number" size="2" maxlength="4" min="0"/> --> 
         </td> 
         <td id="sundayInput1"> 
          <h:inputText id="sunday1" size="4" value="#{timesheet.sunday1}" required="false" /> 
          <!--<input name="sunday1" class="smallInput" type="number" size="2" maxlength="4" min="0"/> --> 
         </td> 
         <td> 
          <!-- <h:inputText id="total1" size="4" value="" required="false" /> --> 
          <input name="total1" id="total1" type="text" size="5" readonly="readonly" /> 
         </td> 
        </tr> 
        <tr id="input_row_2"> 
         <td> 
          <select name="select_2"> 
           <option>-Select One-</option> 
           <option value="Development">Regular Hours</option> 
           <option value="Vacation">Paid Vacation</option> 
           <option value="LOSSOFPAY">Unpaid Vacation</option> 
           <option value="REMOTE">Remote Work</option> 
          </select> 
         </td> 
         <td id="mondayInput2"> 
          <h:inputText id="monday2" size="4" value="#{timesheet.monday2}" required="false" /> 
          <!-- <input name="monday2" class="smallInput" type="number" size="2" maxlength="4" min="0"/> --> 
         </td> 
         <td id="tuesdayInput2"> 
          <h:inputText id="tuesday2" size="4" value="#{timesheet.tuesday2}" required="false" /> 
          <!--<input name="tuesday2" class="smallInput" type="number" size="2" maxlength="4" min="0"/> --> 
         </td> 
         <td id="wednesdayInput2"> 
          <h:inputText id="wednesday2" size="4" value="#{timesheet.wednesday2}" required="false" /> 
          <!--<input name="wednesday2" class="smallInput" type="number" size="2" maxlength="4" min="0"/> --> 
         </td> 
         <td id="thursdayInput2"> 
          <h:inputText id="thursday2" size="4" value="#{timesheet.thursday2}" required="false" /> 
          <!--<input name="thursday2" class="smallInput" type="number" size="2" maxlength="4" min="0"/> --> 
         </td> 
         <td id="fridayInput2"> 
          <h:inputText id="friday2" size="4" value="#{timesheet.friday2}" required="false" /> 
          <!--<input name="friday2" class="smallInput" type="number" size="2" maxlength="4" min="0"/> --> 
         </td> 
         <td id="saturdayInput2"> 
          <h:inputText id="saturday2" size="4" value="#{timesheet.saturday2}" required="false" /> 
          <!--<input name="saturday2" class="smallInput" type="number" size="2" maxlength="4" min="0"/> --> 
         </td> 
         <td id="sundayInput2"> 
          <h:inputText id="sunday2" size="4" value="#{timesheet.sunday2}" required="false" /> 
          <!--<input name="sunday2" class="smallInput" type="number" size="2" maxlength="4" min="0"/> --> 
         </td> 
         <td> 
          <!-- <h:inputText id="total2" size="4" value="#{timesheet.total2}" required="false" /> --> 
          <input name="total2" id="total2" type="text" size="5" readonly="readonly" /> 
         </td> 
        </tr> 
        <tr class="green"><th colspan="10">Expenses</th></tr> 
        <tr class="header"> 
         <td class="blank"></td> 
         <td>Air Fare</td> 
         <td>Lodging</td> 
         <td>Car Rental</td> 
         <td>Per-Diem</td> 
         <td class="blank"></td> 
         <td class="blank"></td> 
         <td class="blank"></td> 
         <td>Total Expenses</td> 
        </tr> 
        <tr class="greenSpacerRow"></tr> 
        <tr> 
         <td class="blank"></td> 
         <td> 
          <h:inputText id="airFare" size="6" value="#{timesheet.airFare}" required="no" /> 
          <!-- <input name="airFare" class="smallInput" type="number" size="4" maxlength="4" min="0"/> --> 
         </td> 
         <td> 
          <h:inputText id="lodging" size="6" value="#{timesheet.lodging}" required="false" /> 
          <!-- <input name="lodging" class="smallInput" type="number" size="4" maxlength="4" min="0"/> --> 
         </td> 
         <td> 
          <h:inputText id="carRental" size="6" value="#{timesheet.carRental}" required="false" /> 
          <!-- <input name="carRental" class="smallInput" type="number" size="4" maxlength="4" min="0"/> --> 
         </td> 
         <td> 
          <h:inputText id="perDiem" size="6" value="#{timesheet.perDiem}" required="false" /> 
          <!-- <input name="perDiem" class="smallInput" type="number" size="4" maxlength="4" min="0"/> --> 
         </td> 
         <td class="blank"></td> 
         <td class="blank"></td> 
         <td class="blank"></td> 
         <td> 
          <input name="expenseTotal" id="expenseTot" class="smallInput" type="text" size="4" maxlength="4" min="0" readonly="readonly"/> 
         </td> 
        </tr> 
       </tbody> 
      </table> 
      <table class="content" border="0" cellpadding="0" cellspacing="0"> 
       <tbody> 
        <tr> 
         <td> 
          <input type="button" onClick="submitTimesheet()" value="Submit" /> 
          <input type="button" onClick="cancel()" value="Cancel" /> 
          <input type="button" onClick="displayTimesheets()" value="Display Entered Timesheets" /> 
         </td> 
        </tr> 
       </tbody> 
      </table> 
     </h:form> 

和我的臉,配置:

<?xml version="1.0" encoding="UTF-8"?> 
<faces-config version="2.0" xmlns="http://java.sun.com/xml/ns/javaee" 
xmlns:xi="http://www.w3.org/2001/XInclude" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"> 
<managed-bean> 
    <managed-bean-name>timesheet</managed-bean-name> 
    <managed-bean-class>com.timesheet.Timesheet</managed-bean-class> 
    <managed-bean-scope>session</managed-bean-scope> 
    <managed-property> 
    <property-name>date</property-name> 
    <property-class>java.util.Date</property-class> 
    <value/> 
    </managed-property> 
    <managed-property> 
    <property-name>monday1</property-name> 
    <property-class>int</property-class> 
    <value/> 
    </managed-property> 
    <managed-property> 
    <property-name>monday2</property-name> 
    <property-class>int</property-class> 
    <value/> 
    </managed-property> 
    <managed-property> 
    <property-name>tuesday1</property-name> 
    <property-class>int</property-class> 
    <value/> 
    </managed-property> 
    <managed-property> 
    <property-name>tuesday2</property-name> 
    <property-class>int</property-class> 
    <value/> 
    </managed-property> 
    <managed-property> 
    <property-name>friday1</property-name> 
    <property-class>int</property-class> 
    <value/> 
    </managed-property> 
    <managed-property> 
    <property-name>friday2</property-name> 
    <property-class>int</property-class> 
    <value/> 
    </managed-property> 
    <managed-property> 
    <property-name>saturday1</property-name> 
    <property-class>int</property-class> 
    <value/> 
    </managed-property> 
    <managed-property> 
    <property-name>saturday2</property-name> 
    <property-class>int</property-class> 
    <value/> 
    </managed-property> 
    <managed-property> 
    <property-name>sunday1</property-name> 
    <property-class>int</property-class> 
    <value/> 
    </managed-property> 
    <managed-property> 
    <property-name>sunday2</property-name> 
    <property-class>int</property-class> 
    <value/> 
    </managed-property> 
    <managed-property> 
    <property-name>thursday1</property-name> 
    <property-class>int</property-class> 
    <value/> 
    </managed-property> 
    <managed-property> 
    <property-name>thursday2</property-name> 
    <property-class>int</property-class> 
    <value/> 
    </managed-property> 
    <managed-property> 
    <property-name>wednesday1</property-name> 
    <property-class>int</property-class> 
    <value/> 
    </managed-property> 
    <managed-property> 
    <property-name>wednesday2</property-name> 
    <property-class>int</property-class> 
    <value/> 
    </managed-property> 
    <managed-property> 
    <property-name>workType1</property-name> 
    <property-class>java.lang.String</property-class> 
    <value/> 
    </managed-property> 
    <managed-property> 
    <property-name>workType2</property-name> 
    <property-class>java.lang.String</property-class> 
    <value/> 
    </managed-property> 
</managed-bean> 
<managed-bean> 
    <managed-bean-name>jobPostings</managed-bean-name> 
    <managed-bean-class>com.logic.JobPostings</managed-bean-class> 
    <managed-bean-scope>request</managed-bean-scope> 
    <managed-property> 
    <property-name>postings</property-name> 
    <property-class>org.apache.myfaces.custom.fileupload.UploadedFile</property-class> 
    <value/> 
    </managed-property> 
</managed-bean> 
</faces-config> 

,如果你想看到的制定者/吸氣我的堆棧跟蹤或豆,我可以把它也起作用

回答

2
<managed-property> 
    <property-name>monday1</property-name> 
    <property-class>int</property-class> 
    <value/> 
</managed-property> 

您還沒有指定有效的int值作爲託管屬性值。有效的int值是在Integer.MIN_VALUEInteger.MAX_VALUE範圍內的數字。空字符串或空值不是有效的int值。這些都是非法的論據。

解決您的問題,要麼使之<value>0</value>

<managed-property> 
    <property-name>monday1</property-name> 
    <property-class>int</property-class> 
    <value>0</value> 
</managed-property> 

或者只是刪除<managed-property>乾脆依靠0標準的Java int默認。順便說一下,我還懷疑所有那些其他無價值管理的房產。他們看起來似乎毫無用處。實際上,整個<managed-bean>條目似乎毫無用處,因爲您可以使用JSF2 @ManagedBean註釋。

+0

嗨BalusC我使用JSF2 @ManagedBean註釋,我沒有faces-config.xml仍然我有同樣的問題com.sun.faces.mgbean.ManagedBeanCreationException:無法設置託管bean的屬性homeBean CtyBen – 2013-05-18 04:20:30