Jsf 从每个对象都有自己按钮的对象列表中传递选定对象
我正在开发一个显示对象列表的web应用程序,每个对象都有自己的模式,当在模式中单击时,有两个下拉菜单和一个按钮,用于调用bean中的方法add,以执行操作并添加选定对象,同时取三个值,selected object,从两个下拉列表和微调器值中选择两个项目Jsf 从每个对象都有自己按钮的对象列表中传递选定对象,jsf,primefaces,javabeans,Jsf,Primefaces,Javabeans,我正在开发一个显示对象列表的web应用程序,每个对象都有自己的模式,当在模式中单击时,有两个下拉菜单和一个按钮,用于调用bean中的方法add,以执行操作并添加选定对象,同时取三个值,selected object,从两个下拉列表和微调器值中选择两个项目 <ui:repeat value="#{ViewTeacher.teacherList}" var="teacher" varStatus="status"> <h:panelGroup layout="block" st
<ui:repeat value="#{ViewTeacher.teacherList}" var="teacher"
varStatus="status">
<h:panelGroup layout="block" styleClass="name">
<p>#{teacher.name}</p>
</h:panelGroup>
<br />
<br />
<a onclick="viewModal(#{status.index})" class="btn btn-success">view</a>
<h:panelGroup id="modal" layout="block" class="modal"
style="max-width: 44em;" tabindex="1">
<h:panelGroup class="modal-content" layout="block">
<span class="close" onclick="modClose()">×</span>
<h:outputText styleClass="description" value="#{teacher.name}" />
<br />
<br />
<br />
students
<h:selectOneMenu value="ok" class="form-control">
<f:selectItems value="#{teacher.students}" var="s"
itemValue="#{s.id}" itemLabel="#{s.name}" />
</h:selectOneMenu>
classes
<h:selectOneMenu value="ok" class="form-control">
<f:selectItems value="#{teacher.classes}" var="c"
itemValue="#{c.id}" itemLabel="#{c.name}" />
</h:selectOneMenu>
<br />
<h:panelGroup layout="block" styleClass="form-group">
<p:spinner min="1" max="10" />
</h:panelGroup>
<h:commandButton id="submitButton" styleClass="btn btn-success" value="ADD">
<!—-this is the button that is supposed to take the values
</h:commandButton>
<a onclick="modClose()" class="btn btn-success">CANCEL</a>
</h:panelGroup>
</h:panelGroup>
</ui:repeat>
#{教师姓名}
看法
&时代;
学生
班级
取消
我试过:
<f:param name="name1" value="China" />
但事实上param的名称将被重复,将使其始终保持不变,并可能被设置为检索到的最新对象
有什么建议吗
更新:
<p:commandLink styleClass="btn btn-success" process="@this"
onclick="viewModal(#{status.index});">
<h:outputText value="ADD" />
<f:setPropertyActionListener
value="#{teacher.id}" target="#{ViewTeacher.selectedTeacher}" />
</p:commandLink>
进行此更改以传递教师id,但在bean中仍然为空。首先,为每个对象设置单独的模式不是一个好主意。您可以通过以下方式实现(您正在尝试的): 1) 。在bean中为所选对象添加属性(及其getter和setter)
2) 。放置单一模态(
谢谢,即使每个模态中显示的信息不同,也可以将模态放在重复之外吗?我还想问,在我想发送给教师、所选班级和所选学生的行动听众中(这两个是从模态中选择的)这是可能的吗?您只是在重复中张贴commandlink吗?第一条评论:是的,因为每次单击查看链接时所选对象都会更新。第二条评论:您需要在bean中放置所选类和学生的其他属性。是的,commandlink
与您的查看链接相同,并且将被删除在repeat.added动作监听器中添加了ced,但它没有得到更新,所选的教师需要什么特别的声明?或者它是用于动作监听器的注释??您没有使用update=“modal”p:commandLink
上的。这就是弹出窗口中的值没有得到更新的原因。我认为,您使用的selectedTeacher
对象是错误的。您必须在bean的模态和附加属性上使用students
和classes
对象。
<p:commandLink styleClass="btn btn-success" process="@this" update="modal"
onclick="PF('modal').show();">
<h:outputText value="View" />
<f:setPropertyActionListener
value="#{teacher}" target="#{ViewTeacher.selectedTeacher}" />
</p:commandLink>
<ui:repeat value="#{ViewTeacher.teacherList}" var="teacher" varStatus="status">
<h:panelGroup layout="block" styleClass="name">
<p>#{teacher.name}</p>
</h:panelGroup>
<p:commandLink styleClass="btn btn-success" process="@this" update="modal"
oncomplete="PF('modal').show();">
<h:outputText value="view" />
<f:setPropertyActionListener
value="#{teacher}" target="#{ViewTeacher.selectedTeacher}" />
</p:commandLink>
</ui:repeat>
<p:dialog id="modal" widgetVar="modal" header="Edit Teacher" modal="true"
showEffect="fade" hideEffect="fade" resizable="false" closeOnEscape="true"
styleClass="teachers-dialog">
<h:outputText styleClass="description" value="#{ViewTeacher.selectedTeacher.name}" />
<br />
<br />
<br />
students
<h:selectOneMenu value="#{ViewTeacher.selectedStudentId}" class="form-control">
<f:selectItems value="#{ViewTeacher.selectedTeacher.students}"
var="s" itemValue="#{s.id}" itemLabel="#{s.name}" />
</h:selectOneMenu>
classes
<h:selectOneMenu value="#{ViewTeacher.selectedClassId}" class="form-control">
<f:selectItems value="#{ViewTeacher.selectedTeacher.classes}"
var="c" itemValue="#{c.id}" itemLabel="#{c.name}" />
</h:selectOneMenu>
<br />
<h:panelGroup layout="block" styleClass="form-group">
<p:spinner value="#{ViewTeacher.spinnerValue}" min="1" max="10" />
</h:panelGroup>
<h:commandButton id="submitButton" styleClass="btn btn-success" value="ADD">
</h:commandButton>
</p:dialog>