标签: selectonemenu

SelectItem标签中的JSF链接

是否有可能设置一个<a href />在我<f:selectItem itemLabel="label" />在我的链接文字是itemLabel

我正在使用普通的太阳组件.

jsf hyperlink selectonemenu

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

primefaces selectOneMenu无法正常工作

我在这个奇怪的问题上失去了几天,我仔细检查了一切,但我的selectOneMenu根本不起作用,我无法理解为什么.

所以这是我的代码:

我的jsf

<p:selectOneMenu id="entityType"  
      value="#{entityBean.entity.type}" 
      style="width:240px;" 
      converter="entityTypeConverter"
      valueChangeListener="#{entityBean.entityTypeListener}"
      required="true">
      <f:selectItems value="#{entityBean.typeList}"
              var="et"
              itemLabel="#{et.name}"
              itemValue="#{et}" />
</p:selectOneMenu>
Run Code Online (Sandbox Code Playgroud)

我的转换器:

    @FacesConverter("entityTypeConverter")
    public class EntityTypeConverter implements Converter {
        public Object getAsObject(FacesContext context, UIComponent component, String value) {
            if (value == null || value.length() == 0) {
                return null;
            }
            Long id = Long.parseLong(value);

            return EntityType.findEntityType(id);
        }

        public String getAsString(FacesContext context, UIComponent component, Object value) {

            return value instanceof EntityType ? ((EntityType) value).getId().toString() : "";
        }
    }
Run Code Online (Sandbox Code Playgroud)

它在我创建时按预期工作(它传递所选值),但是当我尝试编辑实体时,实际上从未选择所选类型.我尝试使用primefaces 3.1.1和3.2但在查看/编辑模式下我无法获得所选值.

我究竟做错了什么?

提前致谢!

selectonemenu primefaces jsf-2

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

h:selectOneMenu绑定到int错误错误"验证错误:值无效"

我坚持使用JSF RI 1.1_02并且看到了这个问题.

这是我期望工作的Facelet代码:

<h:form>
    <h:selectOneMenu value="#{bean.num}" converter="javax.faces.Integer">
        <f:selectItem itemLabel="one"   itemValue="1" />
        <f:selectItem itemLabel="two"   itemValue="2" />
        <f:selectItem itemLabel="three" itemValue="3" />
    </h:selectOneMenu>
    <h:commandButton value="submit" />
    <h:messages />
</h:form>
Run Code Online (Sandbox Code Playgroud)

请求范围的bean:

public class Bean {
    private int num;

    public void setNum(Integer aNum) {
        num = aNum;
    }

    public Integer getNum() {
        return num;
    }
}
Run Code Online (Sandbox Code Playgroud)

我收到验证错误:值无效,无法想象当我编写的代码很少而且不需要任何转换器时,我做错了什么.我错过了一些明显的东西,或者这是JSF RI 1.1_02中的一个错误?

我可以通过简单地更改支持bean中的属性类型来解决这个问题,String但是当我(自动)转换应该在那里时我必须这样做而感到沮丧.

jsf integer selectonemenu jsf-1.1

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

选择selectOneMenu之后JSF更新inputText

我想从selectOneMenu中选择另一个Skin时更改inputTexts的值.一切都很顺利,我的转换器从菜单中返回正确的对象,但inputTexts没有更新.

<h:form>
    <h:selectOneMenu id="dropdownSkin"
        value="#{helloBean.currentSkin}" defaultLabel="Select a skin.."
        valueChangeListener="#{helloBean.skinValueChanged}" immediate="true"
        onchange="this.form.submit()" converter="SkinConverter" >
        <f:selectItems value="#{helloBean.mySkinsSI}" var="c"
            itemValue="#{c.value}" />
    </h:selectOneMenu>


    <br />
    <h:inputText id="name" value="#{helloBean.currentSkin.title}"></h:inputText>
    <br />
    <h:inputText id="tcolor" value="#{helloBean.currentSkin.titleBar.textColor}"></h:inputText>
    <br />
    <h:inputText id="bcolor" value="#{helloBean.currentSkin.titleBar.backgroundColorStart}"></h:inputText>
</h:form>
Run Code Online (Sandbox Code Playgroud)

这是我的Bean的样子.我调试它并正确设置了Object currentSkin.现在我需要知道如何更新文本字段内容.

@ManagedBean
@SessionScoped
public class HelloBean implements Serializable {

private static final long serialVersionUID = 1L;

private List<ExtendedSkin> mySkins;
private List<SelectItem> mySkinsSI;
private ExtendedSkin currentSkin;

public void skinValueChanged(ValueChangeEvent e) {
    currentSkin = (ExtendedSkin) e.getNewValue();
    FacesContext.getCurrentInstance().renderResponse();
}

public List<ExtendedSkin> getMySkins() {
    mySkins = XMLParser.readExtendedSkins();
    return …
Run Code Online (Sandbox Code Playgroud)

jsf selectonemenu

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

使用SelectOneMenu在JSF(PrimeFaces)中转换:验证错误

我正在使用PrimeFaces在JSF中创建一个项目,我遇到了一个问题<p:SelectOneMenu>,特别是将一个对象的选定值转换为String.我已经编写了必需的Converter类,实现toString()equals()方法,我认为非常正确.然而,在一个<h:messages />组件中,它无休止地给了我:

j_idt7:j_idt92: Validation Error: Value is not valid
j_idt7:j_idt98: Validation Error: Value is not valid

我必须选择属于一个较大形式的值.然后,根据所选的所有者(właściciel)和公司(firma),我将它们添加到数据库中.

这是我的<p:SelectOneMenu>(两次 - 两个菜单):

<p:selectOneMenu value="#{wniosek.selectedWl}" var="w">
<f:selectItem itemLabel="Wybierz" itemValue=""/>
   <f:selectItems value="#{wniosek.listaWl}" var="wlasciciel" 
      itemLabel="#{wlasciciel.nazwisko}" itemValue="#{wlasciciel}" />

      <p:column>
          #{w.nazwisko}
      </p:column>
      <f:converter converterId="WlascicielConverter" />
</p:selectOneMenu>                      
 <h:outputText value="Nazwa firmy: "/>

 <p:selectOneMenu value="#{wniosek.selectedFi}"  var="f">
      <f:selectItem itemLabel="Wybierz" itemValue=""/>
      <f:selectItems value="#{wniosek.listaFi}" var="firma" 
           itemLabel="#{firma.nazwa}" itemValue="#{firma}" />
      <f:converter converterId="FirmaConverter" />
      <p:column>
           #{f.nazwa}
      </p:column>
 </p:selectOneMenu>
Run Code Online (Sandbox Code Playgroud)

这是我所有者的转换器类<p:SelectOneMenu>(同样我已经完成了公司的一个):

public class WlascicielConverter implements Converter …
Run Code Online (Sandbox Code Playgroud)

validation jsf converter selectonemenu

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

根据复选框值有条件地进行输入

在我的 JSF 页面上,我有一个 HTML 输入复选框,允许用户选择是否想要礼物,并且<div>复选框信息下的部分只有在选中复选框时才会显示。选中复选框后,用户将需要选择一个选项(从下拉菜单中,下拉菜单的初始值= null);但是,如果未选中复选框,则不需要选择。

所以,这里有两个条件:

A.Checkbox被选中(==播放div视图)

  1. 用户选择一个选项 -> 好的
  2. 用户不选择任何内容-> 我希望显示所需的消息,这就是我所做的:

    <p:message style="margin: 10px" id="messages7" for="npsScoreSupport" />
    <h:selectOneMenu id="npsScoreSupport" value="#{npsBean.supportScore}" required="true" requiredMessage="Please select an option">
        <f:selectItems value="#{npsBean.ratingPickList}" />
    </h:selectOneMenu>
    
    Run Code Online (Sandbox Code Playgroud)

B. 复选框未选中(== div 视图被隐藏)

  1. 用户不选择任何东西 -> 好的,但页面仍然要求用户选择一个选项,因为我有 required="true"。

由于我需要 requireMessage 来确保在选中复选框时选择了一个选项,我想知道是否可以根据复选框的状态使 requireMessage 成为条件?(选中复选框时需要,未选中时不需要)有什么建议吗?

============更新======================

所以现在我更新了我的复选框并将它与 JAVA 类中的函数连接起来(默认布尔变量检查 = true)

<h:selectBooleanCheckbox class="someClass" value="#{someBean.check}" />
Run Code Online (Sandbox Code Playgroud)

这是我的选择器

<h:selectOneMenu id="OptSelector" value="#{someBean.Opt}" required="#{someBean.check}" requiredMessage="Please select and option">
                                                <f:selectItems value="#{npsBean.OptPickList}" />
Run Code Online (Sandbox Code Playgroud)

即使未选中复选框,提交也失败,似乎布尔检查从未改变。有谁知道为什么?

validation checkbox jsf selectonemenu required

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

Primefaces selectOneMenu 转换器已调用但不工作

我查看了其他问题thisthis等,问题是我的转换被调用,但 selectOneMenu 的值没有改变。我的实体类已生成,并且具有 equals 和 hashCode,我不想更改其中的任何内容 - 如果它重新生成,那么所有更改都将丢失(解决方法是更改​​实体类的 toString)。

XHTML 代码被剪断:

<p:selectOneMenu id="defid" 
                 value="#{abcController.selected.defid}"
                 converter="defConverter">
Run Code Online (Sandbox Code Playgroud)

转换器:

@FacesConverter("defConverter")
public class DefConverter implements Converter
{
    private static final Logger LOG = Logger.getLogger(DefConverter.class.getName());
    @EJB
    private DefFacade defFacade;

    @Override
    public Object getAsObject(FacesContext fc, UIComponent uic, String string)
    {
        LOG.info("getAsObject: " + string);
        try
        {
            return defFacade.findWithNFieldsWithValue("name", string, "=").get(0);
        }
        catch (Exception ex)
        {
            LOG.log(Level.SEVERE, "Error while fetching Def for " + string, ex);
        }
        return null;
    }

    @Override …
Run Code Online (Sandbox Code Playgroud)

java converters selectonemenu primefaces jsf-2

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

&lt;p:selectOneMenu&gt; 在选择框后面生成输入字段

我正在尝试将标签标签与我的下拉菜单相关联,以便屏幕阅读器可以访问它。我注意到在使用 p:selectOneMenu primefaces 时会生成一个不应该存在的输入元素。应用 p:outputLabel 时,它似乎工作正常(即,您单击标签文本并将焦点移至下拉菜单)。然而,事实证明焦点实际上正在移动到输入元素,而选择元素无法通过键盘访问(tabindex="-1")。以下是来自 primefaces 网站的示例:http : //www.primefaces.org/showcase/ui/input/oneMenu.xhtml

<h:form>
<p:messages autoUpdate="true" />

<h:panelGrid columns="2" style="margin-bottom:10px" cellpadding="5">
    <p:outputLabel for="console" value="Basic:" />
    <p:selectOneMenu id="console" value="#{selectOneMenuView.console}" style="width:125px">
        <f:selectItem itemLabel="Select One" itemValue="" />
        <f:selectItem itemLabel="Xbox One" itemValue="Xbox One" />
        <f:selectItem itemLabel="PS4" itemValue="PS4" />
        <f:selectItem itemLabel="Wii U" itemValue="Wii U" />
    </p:selectOneMenu>

    <p:outputLabel for="car" value="Grouping: " />
    <p:selectOneMenu id="car" value="#{selectOneMenuView.car}">
        <f:selectItem itemLabel="Select One" itemValue="" />
        <f:selectItems value="#{selectOneMenuView.cars}" />
    </p:selectOneMenu>

    <p:outputLabel for="city" value="Editable: " />
    <p:selectOneMenu id="city" value="#{selectOneMenuView.city}" effect="fold" editable="true">
        <f:selectItem itemLabel="Select One" itemValue="" …
Run Code Online (Sandbox Code Playgroud)

jsf accessibility wcag selectonemenu primefaces

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

Primefaces selectOneMenu 不显示初始值

我在 中设置了一个带有 POJO 和转换器的 selectOneMenu,p:dialog请参阅下面的源代码。它确实有效,除了最初,当它第一次以非下拉状态显示时,会选择第一个选项,而不是与 bean 值对应的选项。如果我保存 selectOneMenu 的状态而不与之交互,则会保存最初选择的第一个选择,因此实际值会被覆盖,但如果我选择不同的选择,则会正确保存。selectOneMenu 绑定到的 bean 值不能是null

我调试了转换器,结果发现,当加载后备数据并且刷新并显示对话框时,所有选择都会经过转换器,再加上再次getAsString()选择实际 bean 值。尽管如此,第一个选项仍然被实际选中并显示在 selectOneMenu 中。当提交对话框的表单时,实际选择的选择将通过转换器的,无论这是错误选择的初始值还是手动选择的初始值。getAsObject()

请告知可能是什么问题。

调用对话框的按钮的 xhtml,其形式不同:

<p:commandButton id="toolbarEditButton" 
            value="Edit selected" update=":editMediaForm"
            disabled="#{!contentManager.mediaSelected}"
            actionListener="#{contentManager.editSelectedMedia}"
            onclick="PF('editMediaWidget').show()" />
Run Code Online (Sandbox Code Playgroud)

对话框的xhtml:

    <p:dialog id="editMediaDialog" widgetVar="editMediaWidget"
        modal="true" resizable="false" >
        <h:form id="editMediaForm" >
            <p:panelGrid rendered="#{contentManager.isMediaSelected()}" columns="2" >
                ... <!-- other properties of the selected element -->
                <p:outputLabel value="Media type" />
                <p:selectOneMenu value="#{contentManager.selectedMedia.mediaType}"
                                 converter="#{mediaTypeConverter}">
                    <f:selectItems value="#{mediaTypeConverter.allMediaTypes}"
                        var="mt" itemLabel="#{mt.name}" itemValue="#{mt}" />
                    <p:ajax listener="#{contentManager.onMediaTypeChanged()}" />
                </p:selectOneMenu>
            </p:panelGrid> …
Run Code Online (Sandbox Code Playgroud)

jsf selectonemenu primefaces

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

如何在 p:selectOneMenu 的选定项目上显示图像

我正在尝试实现一个高级selectOneMenu(PrimeFaces) 以根据其标志图标选择语言环境。图标显示在列表中,但不显示所选项目(展示同样发生)。我怎么能这样做?

<p:selectOneMenu id="mySOMId" value="#{localeBean.locale}" var="mySOMVar" converter="#{localeConverter}" >
    <f:selectItems 
        value="#{myBean.locales}" 
        var="localeSIVar"
        itemLabel="#{localeSIVar.language}" 
        itemValue="#{localeSIVar}" />
    <p:column style="text-align: center;" >
        <h:graphicImage library="default" height="20" name="img/#{mySOMVar.language}.svg" />
    </p:column>
</p:selectOneMenu>
Run Code Online (Sandbox Code Playgroud)

我可以看到它f:selectItems有一个itemLabelEscaped属性,我可以用它在 中输出<img>标签itemLabel,但我不知道我会在它的src.

谢谢

jsf selectonemenu primefaces

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