我有一个名为删除的方法。它存在于h:dataTable的所有行中。 dataTable条目是从数据库中提取的。
dataTable的代码以及页面的其余部分是:
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:f="http://xmlns.jcp.org/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
template="/webpages/templates/MainTemplate.xhtml">
<ui:define name="infomationPartOfBody">
<h:form>
<div class="infoContent">
<div id="title">
Employee's Schedule
</div><br/>
<div>Being the <b>administrator</b>, you can keep track of the work distribution amongst the employees of the organization.
Just select the employee ID from the drop-down list to view the details.</div><br/><br/><br/>
<div><table border="0" cellspacing="4" cellpadding="8">
<tr>
<td> <b><h:outputLabel value="Select Employee ID"/></b> </td>
<td>
<h:selectOneMenu value="#{empDutySchedBean.empID}">
<f:selectItems value="#{dropDownBean.dropItems}" />
</h:selectOneMenu>
</td>
<td> <h:commandButton class="button" id="allocateButton" value="View the Schedule" style="width: 100%" action="#{empDutySchedBean.viewEmpTask}"/> </td>
</tr>
</table> </div> <br/><br/>
<div class="empDutyInfo"> <table border="0" cellspacing="4" cellpadding="8" >
<tr>
<td> <h:outputLabel
style="font-size: 20px;
color:#000000; border-bottom-style: groove;
text-shadow: 2px 2px 10px #95D0CA; "
rendered="#{empDutySchedBean.show}" value="Employee Name: "/> </td>
<td> <h:outputText class="items"
rendered="#{empDutySchedBean.show}" value="#{empDutySchedBean.fullName}" /></td>
</tr>
<tr>
<td> <h:outputLabel
style="font-size: 20px;
color:#000000; border-bottom-style: groove;
text-shadow: 2px 2px 10px #95D0CA; "
rendered="#{empDutySchedBean.show}" value="Employee ID: "/> </td>
<td> <h:outputText
class="items"
rendered="#{empDutySchedBean.show}" value="#{empDutySchedBean.partOf}"/></td>
</tr>
<tr>
<td> <h:outputLabel
style="font-size: 20px;
color:#000000; border-bottom-style: groove;
text-shadow: 2px 2px 10px #95D0CA; "
rendered="#{empDutySchedBean.show}" value="Designation: "/> </td>
<td> <h:outputText
class="items"
rendered="#{empDutySchedBean.show}" value="# {empDutySchedBean.designation}"/></td>
</tr>
<tr>
<td> <h:outputLabel
style="font-size: 20px;
color:#000000; border-bottom-style: groove;
text-shadow: 2px 2px 10px #95D0CA; "
rendered="#{empDutySchedBean.show}" value="Gender: "/> </td>
<td> <h:outputText
class="items"
rendered="#{empDutySchedBean.show}" value="#{empDutySchedBean.gender}"/></td>
</tr>
</table>
<h:dataTable value="#{empDutySchedBean.empDuty}" var="u" border="1" rendered="#{empDutySchedBean.show}" cellspacing="5" cellpadding="10"
styleClass="infoTable" headerClass="dataTableHeader" rowClasses="dataTableRow" >
<h:column>
<f:facet name="header">
Task Allocated
</f:facet>
#{u.subTaskID}
</h:column>
<h:column>
<f:facet name="header">
Task Description
</f:facet>
#{u.taskDescription}
</h:column>
<h:column>
<f:facet name="header">
From
</f:facet>
#{u.fromDate}
</h:column>
<h:column>
<f:facet name="header">
To
</f:facet>
#{u.toDate}
</h:column>
<h:column>
<f:facet name="header">
</f:facet>
<h:commandButton class="button" value="Remove Task" action="#{removeTaskBean.abc}"/>
</h:column>
</h:dataTable></div><br/> <br/></div>
</h:form>
</ui:define>
</ui:composition>
我想要做的是,当针对特定行单击删除时,该行将从数据库中删除,并且页面将使用更新的表重新加载。
我不确定删除按钮的操作属性是否已正确定义。我已经尝试将参数传递给方法:action="#{removeTaskBean.taskRemove(u.subTaskID, empDutySchedBean.partOf)}
。
empDutySchedBean.partOf
取自
<tr>
<td> <h:outputLabel style="font-size: 20px; color:#000000; border-bottom-style: groove;text-shadow: 2px 2px 10px #95D0CA; " rendered="#{empDutySchedBean.show}" value="Employee ID: "/> </td>
<td> <h:outputText class="items"rendered="#{empDutySchedBean.show}" value="#{empDutySchedBean.partOf}"/></td>
</tr>
如果要查看图像,您将看到从另一个bean中的另一个方法检索到{empDutySchedBean.partOf}
。
删除按钮调用的方法是:
public void taskRemove(String id, String tID) throws Exception
{
System.out.println("in Bean: taskRemove() invoked");
setTheempID(id);
System.out.println("in RemoveTaskBean, the emp ID is "+getTheempID());
setTheTaskID(tID);
System.out.println("subtask ID"+ getTheTaskID());
setNoRowEffect(ts.removeEmpTask(getTheempID(), getTheTaskID()));
System.out.println("in Bean: no of rows affected "+getNoRowEffect());
}
我如何知道该方法是否未被调用?那是因为print语句System.out.println("in Bean: taskRemove() invoked");
不会在netBeans的输出控制台上打印。
我不确定我是否正在尝试提取id
并且tID
是否正确。我认为它无法知道我想要提取哪个tID
,因为表中有somany。
修改 我已经意识到tomcat服务器默认不支持参数传递。所以我了解到我需要将 el-impl-2.2.jar 添加到我的库中。我已经补充说,现在该方法调用。但是当我打印netbeans输出上传递的参数时,它不会打印任何内容。现在问题已经发生了一些变化。它已成为别的东西。