标签: selectonemenu

JSF selectOneMenu 正在刷新并返回到以前的状态,而不是显示新值

我有一个数据表,其中有很多 selectOneMenu 项目可用,例如,对于 10 个项目,每个项目都有一个 selectOneMenu 组合。现在,如果我单击任何组合,他们应该将值保存在数据库中,然后他们会这样做。但是在保存更改后的值后,selectOneMenu 将返回到之前的状态。我希望 selectOneMenu 保持其当前状态。此外,正在为数据表中的每个组合调用该方法。我真的想知道为什么!!过去 2 周我一直在敲我的头。任何帮助将非常感激。提前致谢。

这是我在这里的第一篇文章。这是我的 jsf 数据表:

<h:dataTable value="#{careNeedBean.controlledCareNeedsList}" var="careNeed"
        id="careneed_table" binding="#{careNeedBean.dataTable}">
<h:column>
 <f:facet name="header">
  <h:outputText value="NeedsLevel"/>
 </f:facet>
 <h:selectOneMenu id="needs_level_combo" style="width:200px;font-size:9px;"
                                         onchange="submit()" 
                                         valueChangeListener="#{careNeedBean.saveTaskAsessment}"
                                         binding="#{careNeedBean.selectOneMenu}">                                      
  <f:selectItem itemValue="not_assessed" itemLabel="----Not assessed----"/>
                    <f:selectItems value="#{careNeed.humanReadableNeedsList}" />
 </h:selectOneMenu>
</h:column>
Run Code Online (Sandbox Code Playgroud)

这是我的豆代码:

public String saveTaskAsessment(ValueChangeEvent event) {
   //does some things
   return "Success";
} 
Run Code Online (Sandbox Code Playgroud)

jsf selectonemenu valuechangelistener jsf-2

5
推荐指数
1
解决办法
8955
查看次数

动态添加Primefaces组件

我想动态添加Primefaces组件.我正在使用与此类似的解决方案,前面已经讨论过:

<h:form>
    <h:panelGrid columns="2">
        <p:dataGrid id="categoriesGrid" value="#{bean.categories}"
            var="categoryBean" rowIndexVar="rowIndex">
            <p:column>
                <p:selectOneMenu id="categorySelect" effect="drop"
                    value="#{categoryBean.selectedCategory}" >
                    <f:selectItems value="#{categoryBean.availableCategories}"
                        var="category" itemLabel="#{category.name}"
                        itemValue="#{category}" />
                </p:selectOneMenu>
            </p:column>
        </p:dataGrid>
        <p:commandButton actionListener="#{bean.addNewCategory}"
            value="Add category" update="categoriesGrid"/>
    </h:panelGrid>
</h:form>
Run Code Online (Sandbox Code Playgroud)

但它有问题.在点击"添加类别"按钮后,我得到了回复示例:

<?xml version='1.0' encoding='UTF-8'?>
<partial-response>
<error>
    <error-name>
        class javax.faces.component.UpdateModelException
    </error-name>
    <error-message>
        <![CDATA[/createTutorial.xhtml @85,65 value=
            "#{categoryBean.selectedCategory}":java.util.NoSuchElementException]]>
    </error-message>
</error>
</partial-response>
Run Code Online (Sandbox Code Playgroud)

提前致谢

java jsf selectonemenu java-ee primefaces

5
推荐指数
1
解决办法
5557
查看次数

JSF.SelectOneMenu和SelectItems

我试图让用户从JSF的下拉列表中选择一个集合的项目.这是我正在使用的代码:

<f:view>
 <h:form id="insert">
    <h:selectOneMenu value="#{MyBean.user}">
        <f:selectItems value="#{MyBean.userList}" var="currentUser" itemValue="#{currentUser.username}" itemLabel="#{currentUser.username}"/>
     </h:selectOneMenu>
     <h:commandButton value="Insert" action="#{AuctionBean.insertItem}"/><br>
 </h:form>
</f:view>
Run Code Online (Sandbox Code Playgroud)

这是MyBean的代码:

@ManagedBean
public class MyBean{
    private String user;
    private Collection<User> userList;

    @PostConstruct
    public void init() {
                this.userList = UserRepository.getInstance().findAllUsers();
    }
    ...
    public String insertItem() {
         System.out.println("The selected user is " + this.user);
         ...
         return ("successfulInsertion");
    }
...
}
Run Code Online (Sandbox Code Playgroud)

如果需要我的用户的getter和setter:

public String getUser() {
        return this.user;
    }

    public void setUser(String user) {
        this.user = user;
    }
Run Code Online (Sandbox Code Playgroud)

我的问题是,当它打印"所选用户是"时,没有编写user.toString(),而是userList.toString()!这就像selectOneMenu没有正确设置,但我搜索了很多.有人可以帮忙吗?谢谢,AN

jsf selectonemenu

5
推荐指数
1
解决办法
4万
查看次数

如何根据其他选定的值更新选择菜单?

我在尝试制作我的selectOneMenu内容时遇到了麻烦,这取决于另一个选择的值。第一个的内容来自我的数据库中的一个表并且运行良好,但第二个应该来自另一个表,但我无法使其工作。这是我的index.html,我只是想证明这是如何工作的:


        <h:outputLabel value="Estado" styleClass="requiredLbl"/>
        <p:selectOneMenu id="Estado" value="#{beanInscripcion.id_estado}" valueChangeListener="#{beanInscripcion.buscarMunicipios(event)}" >  
            <f:selectItem itemLabel="Elegir Estado" itemValue="" />
            <f:selectItems value="#{beanInscripcion.estados}"  
                           var="edo" itemLabel="#{edo.nombre_estado}" itemValue="#{edo.id_estado}" />  
            <p:ajax update="Municipio"  listener="#{beanInscripcion.buscarMunicipios(event)}" />
        </p:selectOneMenu> 
        <p:separator /> 
        <h:outputLabel value="Municipio" styleClass="requiredLbl"/>
        <p:selectOneMenu id="Municipio" value="municipio">  
            <f:selectItems value="#{beanInscripcion.municipios}"  
                           var="mun" itemLabel="#{mun.nombre_municipio}" itemValue="#{mun.nombre_municipio}" />  
        </p:selectOneMenu>
Run Code Online (Sandbox Code Playgroud)

这是我的 Bean 部分,我应该在其中获取第二个菜单的内容:


@ManagedBean(name = "beanInscripcion")
@ViewScoped
public class BeanInscripcion implements Serializable {

    static String strURL;
    private List<Estado> estados; 
    private List<Municipio> municipios;
    private int id_estado;
    public BeanInscripcion() throws SQLException{
            estados = new ArrayList<Estado>();
            buscarEstados();
    }

    public …
Run Code Online (Sandbox Code Playgroud)

java jsf selectonemenu dynamic-content primefaces

5
推荐指数
2
解决办法
3万
查看次数

p:当noSelectionOption项存在时,selectOneMenu预选前一项

p:selectOneMenu添加时选择存在问题f:selectItem.

视图:

<p:selectOneMenu value="#{selectionTest.selectedName}">
    <f:selectItem itemLabel="Select" noSelectionOption="true" />
    <f:selectItems value="#{selectionTest.allNames}" var="varName" itemLabel="#{varName}" itemValue="#{varName}" />
</p:selectOneMenu>
Run Code Online (Sandbox Code Playgroud)

模型:

private List<String> allNames;
private String selectedName;

public MenuSelectionTestBean(){
    allNames = new ArrayList<String>();
    allNames.add("Ahmed");
    allNames.add("Mohamed");
    allNames.add("Ibrahim");
    allNames.add("Walid");

    selectedName ="Walid";
}
Run Code Online (Sandbox Code Playgroud)

结果:

在此输入图像描述

应选择"Walid"项,但选择"Ibrahim".我认为PrimeFaces根据列表中的索引选择项目,而不是项目的值.

这是怎么造成的,我该如何解决?

facelets selected selectonemenu primefaces jsf-2

5
推荐指数
1
解决办法
2510
查看次数

p:selectOneMenu在Primefaces 3.4.2中出错

我最近更新了Primefaces从3.4到3.4.2,现在我在一些有p:selectOneMenu组件的页面上遇到了问题.我在JavaScript控制台中看到错误说:TypeError: e.offset(...) is undefined.页面加载时会立即记录此错误.

有谁知道什么是问题?

javascript jquery selectonemenu primefaces jsf-2

5
推荐指数
1
解决办法
1775
查看次数

使用p:selectOneMenu导航

我正在使用选择一个菜单来导航到我网站的不同部分:

<p:selectOneMenu value="#{navigator.outcome}">                      
    <f:selectItem itemLabel="Select page..." />
    <f:selectItem itemValue="page1" itemLabel="Page 1" />
    <f:selectItem itemValue="page2" itemLabel="Page 2" />
    <f:selectItem itemValue="page3" itemLabel="Page 3" />
    <p:ajax event="change" listener="#{navigator.navigate}" />
</p:selectOneMenu>
Run Code Online (Sandbox Code Playgroud)

是否有更多SEO友好的方式这样做?我担心JavaScript链接不会被跟踪.

navigation jsf selectonemenu primefaces jsf-2

5
推荐指数
1
解决办法
4592
查看次数

p:selectOneMenu下拉列表未附加到对话框内的组件

我在ap:dialog中有ap:selectOneMenu.每当我滚动页面时,下拉列表都会从p:selectOneMenu标签中分离,并根据鼠标滚动进行移动.有没有办法将它附加到标签上,以便它不会移动?

以下是具有相同问题的人发布的问题的屏幕截图.SelectOneMenu面板使用鼠标滚轮滚动

jsf selectonemenu primefaces

5
推荐指数
1
解决办法
2683
查看次数

延迟加载f:selectItems打开p:selectOneMenu

我想<f:selectItems>只在用户打开时加载列表<p:selectOneMenu>.

我试过这种方式,但不起作用:

<p:selectOneMenu id="bases" value="#{sucesoBB.suceso.base}" converter="EntitiesCachedConverter"  >
    <f:selectItem itemLabel="" itemValue="" />
    <f:selectItems value="#{sucesoBB.bases}" var="base" itemValue="#{base}" itemLabel="#{base.id} - #{base.descripcion}"  />
    <p:ajax event="click" onstart="#{sucesoBB.bases == null or sucesoBB.bases.size() ==1 or sucesoBB.bases.empty()?'cargaBases();':''}" />
</p:selectOneMenu>
<p:remoteCommand name="cargaBases" update="bases" actionListener="#{sucesoBB.cargaBases}" />
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

jsf lazy-loading selectonemenu primefaces

5
推荐指数
1
解决办法
3702
查看次数

p:selectOneMenu不通过List <String>上的p:列呈现自定义内容

我正在尝试使用Primefaces 5.2 selectOneMenu来显示图像及其文件名.这就是我的xhtml目前的样子:

<h:form>
<h:panelGrid id="createPanelGrid" columns="2">
    <p:outputLabel value="Service Logo:" />
    <p:selectOneMenu value="#{imageBean.selectedImage}" var="l">
        <f:selectItem itemLabel="Select a logo" itemValue="" />
        <f:selectItems value="#{imageBean.imageList}" var="logo" itemLabel="#{logo}" itemValue="#{logo}" />
        <p:column>
            <p:graphicImage value="#{imageBean.imageFolder}/#{l}" style="max-width:50px;max-height:50px;" />
        </p:column>
        <p:column>#{l}</p:column>
    </p:selectOneMenu>
</h:panelGrid>
Run Code Online (Sandbox Code Playgroud)

ManagedBean(imageBean)有

public List<String> getImageList () {
    List<String> imageList = new ArrayList<String>();
    File[] files = absoluteImageFolder.listFiles();
    for (File file : files) {
        imageList.add(file.getName());
    }        
    return imageList;
}
Run Code Online (Sandbox Code Playgroud)

private String selectedImage;

public String getSelectedImage() {
    return selectedImage;
}

public void setSelectedImage(String selectedImage) {
    this.selectedImage = selectedImage; …
Run Code Online (Sandbox Code Playgroud)

jsf selectonemenu primefaces jsf-2

5
推荐指数
1
解决办法
1865
查看次数