标签: selectonemenu

JSF从List <School>添加到selectOneMenu

我有一个List对象,它包含School.Id,School.Name和School.Address.

我需要在selectOneMenu列表框中列出所有School.Name.Java代码和相应的JSF代码将如何.

到目前为止我的工作;

<h:selectOneMenu value="#{School.listschoolName}">
<f:selectItems value="#{School.listschoolName}" />
</h:selectOneMenu>
Run Code Online (Sandbox Code Playgroud)

Java类

//And also i got the corresponding getters and setters for these
private List<School> listschool; 

public void listschoolName(){
    setListschool(hml.findAllSchool());
}
Run Code Online (Sandbox Code Playgroud)

findAllSchool()方法实际上返回一个List<School>对象.

我需要在列表框中显示这些学校名称(dropdown/selectOneMenu).我怎样才能做到这一点 ?

  • 我使用的是Netbeans 6.9.1和Galssfish 3

java jsf netbeans selectonemenu glassfish-3

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

selectOneMenu的大胆第二项

我有一个selectOneMenu,它拥有一个州的所有城市.我已经制作了一个sql来将资金放在第一位,但我想大胆一点,以便让使用它更加明显.是否有办法加粗它或做其他事情以使第二种选择更加明显?

<h:selectOneMenu value="#{someBean.cityId}">
     <f:selectItems value="#{addressBean.stateList}" />
</h:selectOneMenu>
Run Code Online (Sandbox Code Playgroud)

css java selectonemenu jsf-2

2
推荐指数
1
解决办法
2266
查看次数

有条件地基于selectOneMenu值渲染组件

有没有办法根据用户从selectOneMenu组件中选择的当前值渲染组件?我的selectOneMenu组件填充了一个由两个值组成的枚举,吸烟者和非吸烟者.如果用户选择了吸烟者,我想在其下方呈现一个复选框,让用户检查他们每天抽烟的次数10,20,30 +等.如果用户选择非吸烟者,我也希望相反的工作即复选框不会渲染/消失.

jsf selectonemenu conditional-rendering

2
推荐指数
1
解决办法
9140
查看次数

在selectOneMenu Primefaces中对项目进行分组

我决定在selectOneMenu中使用group selectItems在primefaces中面对问题我看到我的问题的决定如何在selectOneMenu中对selectItems进行分组但它对我没有帮助

当我使用<p:selectOneMenu>它不行,并生成这样的HTML

<div id="manageTournament:gender" class="ui-selectonemenu ui-widget ui-state-default ui-corner-all ui-helper-clearfix">
<div class="ui-helper-hidden-accessible"><select id="manageTournament:gender_input"
                                                 name="manageTournament:gender_input">
    <option value="">German Cars</option>
    <option value="">American Cars</option>
</select></div>
Run Code Online (Sandbox Code Playgroud)

但是当我使用<h:selectOneMenu>它时没关系

<select id="manageTournament:gender" name="manageTournament:gender" size="1">
<optgroup label="German Cars">
    <option value="BMW">BMW</option>
    <option value="Mercedes">Mercedes</option>
    <option value="Volkswagen">Volkswagen</option>
</optgroup>
<optgroup label="American Cars">
    <option value="Chrysler">Chrysler</option>
    <option value="GM">GM</option>
    <option value="Ford">Ford</option>
</optgroup>
</select>
Run Code Online (Sandbox Code Playgroud)

我的xhtml页面

<h:form id="manageTournament">
            <f:event type="preRenderView" listener="#{adminTournamentController.setConditions(false, 1)}"/>
            <p:wizard id="wizard" widgetVar="wiz" style="display: inline-block; width:600px;"
                      flowListener="#{adminTournamentController.onFlowProcess}" nextLabel="#{msg.next_button}" backLabel="#{msg.back_button}">

                <p:tab id="competitionId" title="#{msg.add_tournament}">
                    <p:panel header="#{msg.info_about_tournament}">
                        <h:panelGrid columns="3" olumnClasses="label, value" styleClass="grid">
<p:outputLabel …
Run Code Online (Sandbox Code Playgroud)

java jsf selectonemenu primefaces jsf-2

2
推荐指数
1
解决办法
6006
查看次数

使用JS在p:selectOneMenu中选择选项

我正在尝试使用javascript在selectOneMenu中预先选择用户所在的国家/地区.问题是当页面最初加载时,列表仍然在第一个元素上.但是,如果我单击箭头以展开列表,然后单击页面上的其他位置以使列表消失,则值是javascript设置的值.

<p:selectOneMenu styleClass="inputField selectOneMenuColored" required="true" editable="false" id="country" value="#{subscribeUser.user.countryBean}" converter="#{countriesConverter}" effect="fold">
   <f:selectItems value="#{countriesConverter.countries}" var="country" itemLabel="#{country.shortName}" itemValue="#{country}" />
</p:selectOneMenu>
Run Code Online (Sandbox Code Playgroud)

和javascript:

<script language="JavaScript" src="http://www.geoplugin.net/javascript.gp" type="text/javascript"></script>
<h:body id="whole" onload="setSelectedIndex('form:country_input',geoplugin_countryName());">
...
function setSelectedIndex(menuId, val){
    var menu = document.getElementById(menuId);
    var opts = menu.options;
    for( j = 0; j < opts.length; j++) {
        if(opts[j].value == val) {
            opts[j].selected= "true";
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

javascript jsf selectonemenu primefaces

2
推荐指数
1
解决办法
3725
查看次数

在 ice 中设置列​​表项:SelectOneMenu

我希望将列表中的项目设置为 icefaces 中的 selectonemenu。但是当我做同样的事情时,我得到以下错误: java.lang.ClassCastException: cannot be cast to javax.faces.model.SelectItem

是一个实体类。

请帮忙。

jsf icefaces selectonemenu

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

valueChangeListener 在提交时调用,而不更改 selectOneMenu 中的选项

在我的页面中,我有 selectonemenu,我注意到当我单击数据表的分页时,将调用 valueChangeListener 方法,而无需实际更改 selectonemenu 中的值或选项。

这是如何发生的以及如何防止这种情况发生,因为仅当用户更改 selectonemenu 中的值时我才需要调用 valueChangeListener 方法。

感谢并感谢任何帮助。

问候

这是我的 selectonemenu 代码

更新1

<ice:selectOneMenu value="#{list.selectedItem}"
            partialSubmit="true" valueChangeListener="#{list.val}">
                <f:selectItems value="#{list.selectItems}" />
                </ice:selectOneMenu>
Run Code Online (Sandbox Code Playgroud)

和豆法

   public void val(ValueChangeEvent event) {
            logger.info("1");
            selectedValue = event.getNewValue().toString();
}
Run Code Online (Sandbox Code Playgroud)

值的添加方式如下

public void loadItems(){
        selectItems.add(new SelectItem("1", "One"));
        selectItems.add(new SelectItem("2", "Two"));
        selectItems.add(new SelectItem("3", "Three"));
        selectItems.add(new SelectItem("4", "Four")); 

}
Run Code Online (Sandbox Code Playgroud)

方法调用如下

 public List<SelectItem> getSelectItems() {
        if (selectItems == null) {
            loadItems;

        }
        return selectItems;
    }
Run Code Online (Sandbox Code Playgroud)

jsf selectonemenu valuechangelistener

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

JSF SelectOneMenu选中的项目

我无法从SelectOneMenu中获取所选项目.我向菜单提供了一个ArrayList,并希望用户选择其中一个.我把菜单放到一个表单中,所以我有一个commandButton,我打算用它来执行选择.这个实现给了我这个错误:当我从菜单"user3"中选择时,无法将类型为java.lang.String的user3转换为类java.util.ArrayList,因此它实际上正确地执行了选择.错误指的是这一行

<h:selectOneMenu value="#{user.myUsers}"
Run Code Online (Sandbox Code Playgroud)

这是我的xhtml中生成selectOneMenu的部分.

 <h:panelGrid columns="3">


                    <h:form>
                    <h:selectOneMenu value="#{user.myUsers}">
                        <f:selectItems value="#{user.myUsers }"/>
                    </h:selectOneMenu>
                    <h:commandButton value="#{msgs.remove_user}" action="#{user.select }" ></h:commandButton>
                    </h:form>
                    <h:outputText value="#{ user.select}"></h:outputText>
            </h:panelGrid>
Run Code Online (Sandbox Code Playgroud)

这是我的UserBean:

 @ManagedBean(name="user")
 @SessionScoped
public class UserBean implements Serializable {

private String selected;


public ArrayList<String> getMyUsers()throws Exception
{
    ArrayList<String> ret;
    MySQLConnection conn = new MySQLConnection();
    try{
        ret = conn.getMyUsers(name);
    }finally
    {
        conn.closeConnection();
    }
    return ret;
}

public String getSelect() throws Exception
{
     if (this.selected==null) return this.getMyUsers().get(0);

     return this.selected;  
}


public void setSelect(String s)
{
    this.selected = s;
} …
Run Code Online (Sandbox Code Playgroud)

jsf selectonemenu

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

&lt;p:selectOneMenu&gt;上的Valuechangelistener可以工作,但是会引发异常。为什么?

我正在使用Primefaces 3.3.1,并在<p:selectOneMenu>其中选择一个新值。选择新值时,将在处理值的地方调用valueChangeListener方法。像这样:

<h:form>
    <p:selectOneMenu id="signature-menu" value="#{objectBuffertBean.loggedInSignature}" effect="fold" style="width: 125px;">
        <p:ajax event="change" update="signature-menu" 
                listener="#{loginBean.changeSignature()}" />
        <f:selectItems value="#{signaturesBean.signatures}" />
    </p:selectOneMenu>
</h:form>
Run Code Online (Sandbox Code Playgroud)

LoginBean.java:

public void changeSignature(ValueChangeEvent e) {
    if (e.getNewValue() != null) {
        try {
            WebDB db = new WebDB();

            SessionHandler.getInstance().
                    getCurrentObjectBuffert().setSignature(
                    db.getSignatureBySignatureFromWebDb(
                                           (String) e.getNewValue()
                    ));
        } catch (DatabaseException e1) {
            e1.printStackTrace();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,奇怪的是,当我选择一个新值时,会出现以下异常:

javax.el.MethodNotFoundException: Method changeSignature not found
Run Code Online (Sandbox Code Playgroud)

而且有效!该方法被以某种方式调用,并且正在处理新值!有谁有同样的奇怪并发症吗?

selectonemenu valuechangelistener primefaces jsf-2

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

SelectOneMenu在ALT按下时重置并触发更改事件

在Glassfish 4.1上使用PF 5.1,JSF 2.2.7.

我有一个简单的例子selectOneMenu:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
  xmlns:h="http://xmlns.jcp.org/jsf/html"
  xmlns:p="http://primefaces.org/ui"
  xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
  xmlns:f="http://xmlns.jcp.org/jsf/core">
<h:head>
    <title>Test</title>
</h:head>
<h:body>
    <h:form>

        <p:selectOneMenu value="#{testBean.text}">
            <p:ajax listener="#{testBean.test()}" update="outputpanel"/>
            <f:selectItem itemLabel="1" itemValue="1"/>
            <f:selectItem itemLabel="2" itemValue="2"/>  
            <f:selectItem itemLabel="3" itemValue="3"/> 
        </p:selectOneMenu>

        <p:outputPanel id="outputpanel"> 
            #{testBean.text}
        </p:outputPanel>

    </h:form>
</h:body>
</html>
Run Code Online (Sandbox Code Playgroud)

豆:

import java.io.Serializable;
import javax.annotation.PostConstruct;
import javax.faces.view.ViewScoped;
import javax.inject.Named;

@Named
@ViewScoped
public class TestBean implements Serializable
{
private String text;

public String getText() {
    return text;
}

public void setText(String text) {
    System.out.println("settext: " + …
Run Code Online (Sandbox Code Playgroud)

jsf selectonemenu primefaces alt-key

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