- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 a4j 更新使以下代码正常工作。
这是我的源代码:
文件 communauteThematiques.xhtml:
<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:s="http://jboss.com/products/seam/taglib"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:rich="http://richfaces.org/rich"
xmlns:a4j="http://richfaces.org/a4j"
template="../layout/template.xhtml">
<ui:define name="containerCentral" >
<script language="javascript">
bUpdate = false;
function checkForm() {
alert("ici verif si modifs a commiter");
return true;
}
</script>
<div class="entry errors" style="text-align: center;" >
<h:messages globalOnly="true" />
</div>
<s:div style="padding-top: 20px;" >
<h:form id="frmList" >
<h1>Gestion des thématiques des communautés</h1>
<br/>
<h:outputText value="Sélectionner une communauté : "/>
<h:selectOneMenu id="listeCommunaute" value="#{adminThesaurusThematiques.communauteSelected}" required="true" disabled="#{adminThesaurusThematiques.communauteSelected != null}" >
<s:selectItems value="#{adminThesaurusThematiques.listeCommunaute}"
var="communaute"
label="#{communaute.nom}"
noSelectionLabel="Veuillez sélectionner une communauté ... " />
<a4j:support event="onchange" reRender="arbre" status="majTypeWaiting" ajaxSingle="true" />
</h:selectOneMenu>
<!--h:selectOneMenu id="typeCommunaute" value="#{adminCommunaute.communauteSelected.type}" required="true" disabled="#{adminCommunaute.communauteSelected.type != null}" >
<s:selectItems noSelectionLabel="#{messages['application.label.choixSelect']}" />
<f:selectItem itemValue="geo" itemLabel="Géographique" />
<f:selectItem itemValue="metier" itemLabel="Métier" />
<a:support event="onchange" reRender="typeCommunaute,zoneChoixMembres" status="majTypeWaiting" ajaxSingle="true" />
</h:selectOneMenu-->
<a4j:status id="majTypeWaiting" forceId="true">
<f:facet name="start">
<img src="/communaute/images/admin/ajax-loader.gif" style="padding-left: 5px;" />
</f:facet>
</a4j:status>
<br/>
<rich:tree id="arbre" value="#{adminThesaurusThematiques.arbre}" var="node" switchType="client" toggleOnClick="true" >
<rich:treeNode>
<h:outputText value="#{node}" />
</rich:treeNode>
</rich:tree>
<h:commandButton id="saveNewOrder" value="Enregistrer les modifications" action="#{adminThesaurusThematiques.saveNewOrder}" style="display: none;" />
</h:form>
</s:div>
</ui:define>
</ui:composition>
文件管理CommunauteThematiquesAction:
public class AdminCommunauteThematiquesAction {
@Logger
private Log log;
@In(create = true)
private GeneralMgr generalMgr;
@In(create = true)
private CommunauteMgr communauteMgr;
@In(create = true)
private MetadataMgr metadataMgr;
@In
private FacesMessages facesMessages;
private Communaute communauteSelected;
private List<Communaute> listeCommunaute;
private TreeNodeImpl<String> arbre;
@Create
public void init() {
//if (listeCommunaute == null) {
log.debug("Listing des communautés");
listeCommunaute = communauteMgr.getListeCommunautesByName();
//}
}
public List<Communaute> getListeCommunaute() {
return listeCommunaute;
}
public void setListeCommunaute(List<Communaute> listeCommunaute) {
this.listeCommunaute=listeCommunaute;
}
public Communaute getCommunauteSelected() {
return communauteSelected;
}
public void setCommunauteSelected(Communaute communaute) {
this.communauteSelected=communaute;
}
private void buildTree() {
try {
arbre = new TreeNodeImpl<String>();
Metadata thesaurus = metadataMgr.getApplicationMetadata();
if (thesaurus.getThesaurus() != null) {
for (MetadataValue metVal : thesaurus.getThesaurus()) {
arbre = ajoutNodeRecursif(arbre, metVal);
}
}
} catch (Exception e) {
log.error("Erreur pendant la génération de l'arbre de thématiques", e);
facesMessages.add("Une erreur est survenue pendant la génération de l'arbre de thématiques");
}
}
private TreeNodeImpl<String> ajoutNodeRecursif(TreeNodeImpl<String> node, MetadataValue val) {
if (val != null) {
TreeNodeImpl<String> child = new TreeNodeImpl<String>();
child.setData(val.getLibelle());
if (val.getSousElements() != null) {
for (MetadataValue metVal : val.getSousElements()) {
child = ajoutNodeRecursif(child, metVal);
}
}
node.addChild(val.getId(), child);
}
return node;
}
/* Getters & Setters */
public TreeNodeImpl<String> getArbre() {
if(communauteSelected!=null) {
communauteSelected.getId();
buildTree();
}
return arbre;
}
public void setArbre(TreeNodeImpl<String> arbre) {
this.arbre = arbre;
}
}
当尝试调试我的代码时,我发现 communauteSelected 从未初始化。有什么想法吗?
以下是下拉组合中的值:
org.cyo.diapason.model.Communaute@411 - Aspects postes de travail
org.cyo.diapason.model.Communaute@41e - BLOC 3
org.cyo.diapason.model.Communaute@419 - CCF
任何想法都非常受欢迎。我们将不胜感激您的帮助
最佳答案
您尝试在表单 e 重新渲染后插入一个 rich:panel:
<h:form id="frmList" >
<rich:panel id="panel">
...
<h:selectOneMenu id="listeCommunaute" value="#{adminThesaurusThematiques.communauteSelected}" required="true" disabled="#{adminThesaurusThematiques.communauteSelected != null}" >
<s:selectItems value="#{adminThesaurusThematiques.listeCommunaute}"
var="communaute"
label="#{communaute.nom}"
noSelectionLabel="Veuillez sélectionner une communauté ... " />
<a4j:support event="onchange" reRender="panel" status="majTypeWaiting" ajaxSingle="true" />
</h:selectOneMenu>
...
</rich:panel>
关于java - selectOneMenu - a4j onchange 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5795486/
这个问题在这里已经有了答案: Make multiple dependent / cascading selection components in JSF (4 个答案) 关闭 2 年前。 我想在
这个问题在这里已经有了答案: How to load and display dependent h:selectOneMenu on change of a h:selectOneMenu (1
我想要多个 通过选择主要显示的 不工作的例子 //this one
我有一个 selectOneMenu,其中包含两个项目“Granted”和“Dismessed” 我在其下还有两个 selectO
在我的应用程序中,如果设置了另一个 SelectOneMenu,我将尝试设置/更新 SelectOneMenu。我们使用的是primefaces,所以我检查了primefaces 展示并找到了我正在寻
我想创建 JSF 注册表单,其中包含包含所有国家/地区列表的选择菜单。我知道这很容易用 Java 实现 HashMap但我不知道如何实现的棘手部分是,在用户从列表中选择他的国家后,第二个选择菜单与他所
我很长时间以来一直试图找出问题所在,但没有成功的结果。我在 Google 中搜索此内容,并尝试了几个不同的工作示例,但没有一个可以帮助我解决我的任务。 问题是,当“类别”selectOneMenu 更
我有一个带有惰性负载。在其中两列中,有一个 在他们每个人中。 第一列包含国家/地区列表,第二列包含数据库中的州列表。 我希望第二个菜单(包含州列表的菜单)仅显示数据表的每行中与中第一个菜单中的国家/地
好吧,我已经坚持了几天(轻描淡写)。 假设我有一个 selectOneMenu 我想根据所选选项更改另一个 selectOneMenu 上的选项在之前的 se
首先,我想为我发布的长代码道歉,它们非常简单,只是一个重复 17 次的 p:selectOneMenu(这就是为什么它很长)。 我遇到的问题是,如果我在一个表单中有太多 p:selectOneMenu
这是针对 JSF 2.0 的(请注意 - 这是 mojerra 实现,我没有使用 Icefaces、myfaces 等) 假设我的表单中只有一个下拉列表,并且该下拉列表绑定(bind)了一个存储值、标
信息 JSF 2.0 Primefaces 3.4 两个对象都是 People 对象 我有一个简单的下拉菜单,包含在提交表单提交(AJAX 调用)上的选择的表单中: ....
我有以下(不言自明的)实体关系: * Manufacturer * Car (Manufacturer.getCars()) * Tire (Car.getTires()) MyBean p
我正在使用可编辑的素面selectOneMenu显示一些值。如果用户从列表中选择一个项目,则应更新文本区域。但是,如果用户在selectOneMenu中键入内容,则不应更新文本区域。 我以为我可以解决
好吧,我需要对 selectOneMenu 标签进行一些说明,使用 EL 表达式来获取/设置值 我有这段代码,它
一个人只能拥有一辆汽车,但在数据表中我想显示列表中的所有汽车,但选择一个用户所属的人。这样用户就可以即时更新任何人的汽车。 假设我有两个 table 人 id name car_id 汽车 id na
我尝试加载 selectOneMenu 并给出以下异常:java.lang.IllegalStateException:提交响应后无法创建 session 。我有 xhtml:
好吧,我需要对 selectOneMenu 标签进行一些说明,使用 EL 表达式来获取/设置值 我有这段代码,它
Person can only have only one car ,但在数据表中我想显示列表中的所有汽车,但选择一个用户所属的用户。这样用户就可以即时更新任何人的汽车。 假设我有两个表 人物 id
我在 JSF 页面上使用 SelectOneMenu 组件和 SelectBooleanCheckbox 组件。 如果选择了组合框,我的 SelectOneMenu 应被阻止并设置为第一个元素(重置)
我是一名优秀的程序员,十分优秀!