无法从DataModel表中的命令链接导航Primefaces,JSF
问题描述:
我有一个带有命令链接的DataModel表来导航到另一个页面单击。无法从DataModel表中的命令链接导航Primefaces,JSF
但导航没有发生在DataModel表中,因为当我点击链接时,它选择整个行,因为它是一个DataModel。
我应该怎么做才能使它作为命令链接工作。
我的代码的海贼王:
<p:dataTable id="studentDtTble" var="studmodel" value="#{studentController.dataModelList}">
<p:columnGroup type="header">
<p:row>
<p:column headerText="StudentId"></p:column>
<p:column headerText="StudentName"></p:column>
<p:column headerText="Add" ></p:column>
</p:row>
</p:columnGroup>
<p:column>
<p:commandLink id="ajax" update="">
<h:outputText value="#{studmodel.studentId}" styleClass="txtlink" />
</p:commandLink>
</p:column>
<p:column>
<h:outputText value="#{studmodel.studentName}" />
</p:column>
<p:column >
<p:selectBooleanCheckbox value="#{studmodel.add}" />
</p:column>
</p:dataTable>
当我点击链接StudentId则应该导航到学生Information.jsf页。 哪些不是发生。
要做到这一点我在控制器
studentInfo(studentID){
..Navigate to the Student Info Page ..
}
写了个方法,但我不能调用该方法与studentId因为它选择为一行。任何建议
答
当你点击它时选择整行是数据表的默认行为。您可以使用datatale选择属性,它指向一个对象像这样
<p:dataTable id="studentDtTble" var="studmodel" value=#{studentController.dataModelList}"
selection="#{studentController.selectedItem}>
,并在控制器,你应该有一个映射元素学生将selectedItem,我假设学生作为对象。你的方法应该有一个String作为返回类型来执行导航。你可以在faces-config.xml中定义一个导航规则。
或者
您可以使用命令链接(操作方法必须字符串作为返回类型)的action属性,并通过学生证类似下面使用
<f:setPropertyctionListener value="#{studmodel.studentId}" target="any string
in controller /> as a child element in commandLink
希望这hepls :)
[JSF 2.X在两个xhtml页面之间传递参数]的可能重复(http://*.com/questions/11539485/jsf-2-x-passing-parameter-between-two-xhtml-pages) – kolossus