0
다른 선택 상자에 종속성을 가진 일부 선택 상자를 만들려고합니다. 나는 Seam을 처음 접했을 뿐이다. 여기 내 JSF입니다 - 하나가 새로 고쳐지지 않습니다 클릭 한 후 - 내가 제 시간에 기술 유형을 설정할 수 있습니다Seam - ListSelectMenus with dependencies
package de.ac.dmg.productfinder.workflow;
import java.util.List;
import javax.ejb.Remove;
import javax.ejb.Stateful;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import org.jboss.seam.annotations.Factory;
import org.jboss.seam.annotations.In;
import org.jboss.seam.annotations.Logger;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.datamodel.DataModel;
import org.jboss.seam.annotations.datamodel.DataModelSelection;
import org.jboss.seam.international.StatusMessages;
import org.jboss.seam.log.Log;
import de.ac.entity.Machine;
import de.ac.entity.ProductLine;
import de.ac.entity.TechnologyType;
@Stateful
@Name("Profil")
public class ProfilBean implements IProfil {
@PersistenceContext
private EntityManager entityManager;
@Logger
private Log log;
@DataModel(value = "technologyTypes")
private List<TechnologyType> technologyTypes;
@DataModelSelection(value = "technologyTypes")
private TechnologyType technologyType;
@DataModel(value = "productLines")
private List<ProductLine> productLines;
@DataModel(value = "machines")
List<Machine> machines;
@In
StatusMessages statusMessages;
// add additional action methods
@Factory("technologyTypes")
public void loadTechTypes() {
technologyTypes = entityManager.createQuery("Select t from TechnologyType t").getResultList();
}
@Factory("productLines")
public void loadProductLinies() {
System.out.println(technologyType);
productLines = entityManager.createQuery("select p from ProductLine p where p.technologyType = :type ")
.setParameter("type", technologyType).getResultList();
}
public void next() {
// implement your business logic here
log.info("Profil.next() action called with: #{Profil.value}");
statusMessages.add("next #{Profil.value}");
}
@Remove
public void destroy() {
}
}
데이터 테이블
<f:facet name="header">Profil</f:facet>
<a:form ajaxSubmit="true" reRender="testTable">
<s:decorate id="techTypeField" template="layout/edit.xhtml">
<ui:define name="label">Choose tech</ui:define>
<h:selectOneRadio id="techType" value="#{technologyType}" onchange="submit()">
<s:selectItems value="#{technologyTypes}" var="elem" label="#{elem.name}" id="typeId"/>
<s:convertEntity/>
</h:selectOneRadio>
</s:decorate>
</a:form>
<div style="clear:both"/>
<h:dataTable var="productLine" id="testTable" value="#{productLines}" rendered="#{productLines.rowCount > 0}">
<h:column >
<f:facet name="header">pl</f:facet>
#{productLine.id}
</h:column>
</h:dataTable>
내 백업 콩을 표시하기 위해 노력하고있어 테스트 목적으로 슬프게도. 내가 여기서 뭐하고 있는거야?