【发布时间】:2018-03-19 12:16:57
【问题描述】:
我对 JSF 和 JAVA 也很陌生,但我正在从事一个大学项目,我遇到了一些无法解决的问题:
基本上我试图显示一个按钮,如果一个人没有被刻录到一个说“inscribir”的课程中,并且有一个动作来刻录它,如果被刻录了相反的动作。
检查是否正在尝试使用 materiaController.cursaMateria(materia.id) 传递 materia 的 id (materia is course) 来检查登录的用户是否已注册该课程。
这是我的代码:
<h:dataTable value="#{materiaController.getAll()}" var="materia">
<h:column>
<f:facet name="header">id</f:facet>
#{materia.id}
</h:column>
<h:column>
<f:facet name="header">Nombre</f:facet>
#{materia.nombre}
</h:column>
<h:column>
<f:facet name="header">Estado</f:facet>
#{materia.estado.descripcion}
</h:column>
<c:choose>
<c:when test="#{materiaController.cursaMateria(materia.id) == false}">
<h:column>
<h:form>
<h:commandButton value="Inscribir" action="#{materiaController.inscribirMateria(materia.id)}"/>
</h:form>
</h:column>
</c:when>
<c:otherwise>
<h:column>
<h:form>
<h:commandButton value="Desinscribir" action="#{materiaController.desinscribirMateria(materia.id)}"/>
</h:form>
</h:column>
</c:otherwise>
</c:choose>
</h:dataTable>
问题是“cursaMateria”方法总是将参数设为空。顺便说一句,第一列 (id) 打印有相应的 id。
我也尝试了其他方式,但总是一样,无法发送参数:
<c:if test="#{materiaController.cursaMateria(materia.id)}">
<h:form>
<h:commandButton value="Inscribir" action="#{materiaController.inscribirMateria(materia.id)}"/>
</h:form>
</c:if>
<c:if test="#{!materiaController.cursaMateria(materia.id)}">
<h:form>
<h:commandButton value="Desinscribir" action="#{materiaController.desinscribirMateria(materia.id)}"/>
</h:form>
</c:if>
这样:
<h:panelGroup rendered="#{materiaController.cursaMateria(materiaId) == true}">
<h:column>
<h:form>
<h:commandButton value="Inscribir" action="#{materiaController.inscribirMateria(materiaId)}"/>
</h:form>
</h:column>
</h:panelGroup>
<h:panelGroup rendered="#{materiaController.cursaMateria(materiaId) == false}">
<h:column>
<h:form>
<h:commandButton value="Desinscribir" action="#{materiaController.desinscribirMateria(materiaId)}"/>
</h:form>
</h:column>
</h:panelGroup>
还有这个:
<h:column>
<h:form>
<h:commandButton value="Inscribir" action="#{materiaController.inscribirMateria(materia.id)}" rendered="#{materiaController.cursaMateria(materia.id)}" />
<h:commandButton value="Desinscribir" action="#{materiaController.desinscribirMateria(materia.id)}" rendered="#{!materiaController.cursaMateria(materia.id)}"/>
</h:form>
</h:column>
有人可以帮我吗?
先谢谢了。
【问题讨论】: