2012-08-02 86 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