【问题标题】:radio button checked when by default when loading it from bean class从 bean 类加载时默认选中单选按钮
【发布时间】:2017-05-22 06:49:53
【问题描述】:

我是 UI 开发新手。我需要创建一个包含 4 个单选按钮的页面,它将根据我选择的单选按钮呈现表单。 我能够做到所有这些,但目前当我加载页面时,默认情况下没有选择单选按钮,但是渲染完成,因为我已经将它作为表单构造函数。

任何人都可以帮助我如何在从托管管理单选按钮时检查它

<ice:selectOneRadio style="color:#4D148C" id="legalHoldLevelId" partialSubmit="true"value="#legalHoldController.radioYesNo}" valueChangeListener="#{legalHoldController.onChangeOfRadioBttn}">
<f:selectItems value="#{legalHoldController.radioOptions}" />
</ice:selectOneRadio> 
public LegalHoldController() {
    setLegalCreationBox(true);
    setLegalRemoveBox(false);
    setLegalRevertRemoval(false);
    setAddToExisting(false);
}

public SelectItem[] getRadioOptions() {
    radioOptions[0] = new SelectItem(EDMPortalConstants.CREATE_LEGAL_HOLDS);
    radioOptions[1] = new SelectItem(EDMPortalConstants.ADD_TO_EXISTING);
    radioOptions[2] = new SelectItem(EDMPortalConstants.REMOVE_LEGAL_HOLDS);
    radioOptions[3] = new SelectItem(EDMPortalConstants.REVERT_REMOVAL);
    setRadioOptions(radioOptions);
    return radioOptions;
}

public void onChangeOfRadioBttn(ValueChangeEvent event) {
    String oldValue = (String) event.getNewValue();
    if (oldValue.equalsIgnoreCase(EDMPortalConstants.CREATE_LEGAL_HOLDS)) {
        setLegalCreationBox(true);
        setLegalRemoveBox(false);
        setLegalRevertRemoval(false);
        setAddToExisting(false);
        setRadioYesNo(EDMPortalConstants.CREATE_LEGAL_HOLDS);
        // legalHoldDataTable.fetchLegalholddata();
    } else if (oldValue
            .equalsIgnoreCase(EDMPortalConstants.ADD_TO_EXISTING)) {
        setLegalCreationBox(false);
        setLegalRemoveBox(false);
        setLegalRevertRemoval(false);
        setAddToExisting(true);
        setRadioYesNo(EDMPortalConstants.ADD_TO_EXISTING);
        // legalHoldDataTable.fetchLegalholddata();
    } else if (oldValue.equalsIgnoreCase(EDMPortalConstants.REVERT_REMOVAL)) {
        setLegalCreationBox(false);
        setLegalRemoveBox(false);
        setLegalRevertRemoval(true);
        setAddToExisting(false);
        setRadioYesNo(EDMPortalConstants.REVERT_REMOVAL);
        // legalHoldDataTable.fetchLegalholddata();
    } else {
        setLegalCreationBox(false);
        setLegalRemoveBox(true);
        setLegalRevertRemoval(false);
        setAddToExisting(false);
        setRadioYesNo(EDMPortalConstants.REVERT_REMOVAL);
        // legalHoldDataTable.fetchLegalholddata();
    }
}

【问题讨论】:

标签: jsf managed-bean icefaces


【解决方案1】:

像这个例子一样初始化“selectedItem”字段:

小脸:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
          "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:h="http://java.sun.com/jsf/html">
<head>
  <title>JSF Facelet</title>
</head>

<body>
  <h:form>
    <h:selectOneRadio value="#{myBean.selectedItem}">
      <f:selectItems value="#{myBean.items}"/>    
    </h:selectOneRadio>
  </h:form>
</body>

</html>

控制器:

package x;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import javax.annotation.PostConstruct;
import javax.faces.view.ViewScoped;
import javax.inject.Named;

@Named
@ViewScoped
public class MyBean implements Serializable
{
  private List<String> items;
  private String selectedItem;

  @PostConstruct
  public void init()
  {
      items = new ArrayList<>();
      selectedItem = "Item 1";
      items.add( selectedItem );
      items.add( "Item 2" );
      items.add( "Item 3" );
  }

  public String getSelectedItem() { return selectedItem; }
  public void setSelectedItem( String selectedItem_ ) { selectedItem = selectedItem_; }
  public List<String> getItems() { return items; }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-26
    • 1970-01-01
    • 2017-10-02
    • 2014-03-08
    • 2018-04-21
    • 2013-03-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多