首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JSF SelectOneMenu选定项

JSF SelectOneMenu选定项
EN

Stack Overflow用户
提问于 2012-06-09 06:03:12
回答 2查看 28.5K关注 0票数 1

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

代码语言:javascript
复制
<h:selectOneMenu value="#{user.myUsers}"

下面是我的xhtml中生成selectOneMenu的部分。

代码语言:javascript
复制
 <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>

下面是我的UserBean:

代码语言:javascript
复制
 @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;
}
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-06-09 07:36:58

您的数组列表映射到

代码语言:javascript
复制
<f:selectItems value="#{user.myUsers}"/>, 

在选择之后,您将尝试将所选值放到同一列表中:

代码语言:javascript
复制
<h:selectOneMenu value="#{user.myUsers}">

您的managed bean中应该有一些对象(在本例中为string )链接到您的视图,并通过myUsers的选定项填充它。例如:

代码语言:javascript
复制
private String selectedUser; // + appropriate getter and setter

<h:selectOneMenu>应该看起来像这样:

代码语言:javascript
复制
<h:selectOneMenu value="#{user.selectedUser}">

选定的项目应该存储在selectedUser中,直到jsf生命周期结束

票数 9
EN

Stack Overflow用户

发布于 2012-10-05 19:11:42

代码语言:javascript
复制
<table class="tableClass" id="productDescriptionTable">
    <thead>
        <tr class="trPDClass">
            <th class="thPDClass"></th>
            <th class="thPDClass">Feature</th>
            <th class="thPDClass">SubFeature</th>
            `enter code here`<th class="thPDClass">Type</th>
            <th class="thPDClass">Sub-Feature Value</th>
            `enter code here`<th class="thPDClass">Is Active</th>
            <th class="thPDClass">Deleted</th>
        </tr>
    </thead>
    <tbody>
        <tr class="trPDClass">
            <td class="tdPDClass" style="width: 30;" ><input type="checkbox" /></td>
            <td class="tdPDClass"><input type="text" id="0PDfeature" name="PDfeature" /></td>
            <td class="tdPDClass"><input type="text" id="0PDsubFeature" name="PDsubFeature" /></td>
            <td class="tdPDClass"><input type="text" id="0PDtype" name="PDtype" /></td>
            <td class="tdPDClass">
                <div id="0PDsubFeatureValueDiv" name="PDsubFeatureValueDiv"></div>
            </td>
            <td class="tdPDClass">
                <table class="radioClass">
                    <tr>
                        <td width="24%"><input type="radio" name="PDisActive" id="PDisActiveY" value="Y"  /></td>
                        <td width="40%">Yes</td>
                        <td width="20%"><input type="radio" name="PDisActive" id="PDisActiveN" value="N"  /></td>
                        <td width="16%">No</td>
                    </tr>
                </table>
            </td>
            <td class="tdPDClass">
                <table class="radioClass">
                    <tr>
                        <td width="24%"><input type="radio" name="PDdeleted" id="0PDdeletedY" value="Y"  /></td>
                        <td width="40%">Yes</td>
                        <td width="20%"><input type="radio" name="PDdeleted" id="0PDdeletedN" value="N"  /></td>
                        <td width="16%">No</td>
                    </tr>
                </table>
            </td>
        </tr>
    </tbody>
</table>
票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10956532

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档