请教一个JSF中在dataTable中<h:commandLink/>失效的问题
我的JSP部分是这样的
<h:form id= "categoryListForm ">
<h:dataTable id= "table " value= "#{categoryListBean.categoryBeans} "
var= "category " rowClasses= "tddata " headerClass= "tdhead ">
<f:facet name= "header ">
<h:outputText value= "#{msgs.category_list} "/>
</f:facet>
<h:column>
<f:facet name= "header "> <h:outputText value= "#{msgs.category_name} "/>
</f:facet> <h:outputText value= "#{category.name} "/>
</h:column>
<h:column> <h:commandLink action= "#{categoryBean.deleteAction} " styleClass= "highLightLink ">
<h:outputText value= "#{msgs.delete} "/> <f:param name= "categoryId " value= "#{category.id} "
</h:commandLink>
</h:column>
</h:dataTable>
<h:messages errorClass= "errorMessage " globalOnly= "true "/>
</h:form>
这是categoryBean中的deleteAction方法:
public String deleteAction()
{
try
{
this.getServiceLocator().getCategoryService().deleteCategory( this.id );
FacesUtils.resetManagedBean( BeanNames.CATEGORY_LIST_BEAN );
FacesUtils.addInfoMessageById( "categoryBean_delete_category_success " );
}
catch( LibraryException ex )
{
FacesUtils.addErrorMessageById( ex.getMessage() );
}
return NavigationResults.CATEGORY_LIST;
}
为什么点删除链接时候一点反应也没,deleteAction方法也不执行
------解决方案--------------------今天放假了,帮忙顶
------解决方案--------------------JSP页面的格式有问题吧,第二列好象没有表头啊。
通常不反应就是因为页面中有一些验证之类的不通过造成的。还没到执行方法。
------解决方案--------------------将<h:commandLink action="#{categoryBean.deleteAction}" styleClass="highLightLink" >
<h:outputText value="#{msgs.delete}"/ > <f:param name="categoryId" value="#{category.id}"
</h:commandLink >
中的action换为actionlistener,否则你所设置的参数无法传递给deleteaction方法。
action所绑定的方法不能传递参数,但actionlistener可以。
------解决方案--------------------只有listener可以接受参数吧。
普通的backing bean里的方法是不可以的!!!