Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 值和项目值之间的差异_Java_Html_Jsp_Jsf - Fatal编程技术网

Java 值和项目值之间的差异

Java 值和项目值之间的差异,java,html,jsp,jsf,Java,Html,Jsp,Jsf,Jsf中radiobutton的value和itemValue属性之间有什么区别?来自本文: 属性id用于单选按钮组的组件值。它将绑定到值字段 selectedRowId属性用于单选按钮的项目值,并将绑定到项目值字段 该值用于发送SelectItem对象,而不是类似itemValue的字符串。itemValue是items值,作为请求参数传递给服务器,但该值是指向SelectItem实例的值绑定表达式 如果您看看这个JSF: <h:selectOneRadio value="">

Jsf中radiobutton的value和itemValue属性之间有什么区别?

来自本文:

属性id用于单选按钮组的组件值。它将绑定到值字段

selectedRowId属性用于单选按钮的项目值,并将绑定到项目值字段


该值用于发送SelectItem对象,而不是类似itemValue的字符串。itemValue是items值,作为请求参数传递给服务器,但该值是指向SelectItem实例的值绑定表达式

如果您看看这个JSF:

 <h:selectOneRadio value="">
    <f:selectItem itemValue="TestValue" itemLabel="TestLabel" />
</h:selectOneRadio>

将转换为以下HTML:

<table>
    <tr>
    <td>
        <input type="radio" name="j_id_id9" id="j_id_id9:0" value="TestValue" />
        <label for="j_id_id9:0"> TestLabel</label>
    </td>
    </tr>
</table>

测试标签
因此value=valueBinding指向托管bean中的SelectItem,itemValue=正在提交的值。如果您决定添加一个value=“#{TestBean.mySelectItem}”,它将不会以任何方式更改输出的HTML,但是JSF实现将知道mySelectItem字段的getter属性应该用于此字段

编辑:进一步澄清答案。SelectItem的value属性通过getter和setter属性将SelectItem绑定到托管bean中的SelectItem字段。如果设置如下所示的值:

 <h:selectOneRadio value="">
    <f:selectItem itemValue="TestValue" itemLabel="TestLabel" value="#{TestBean.mySelect}"/>
</h:selectOneRadio>   
<h:selectOneRadio value="#{TestBean.selectedRadioValue}">
<f:selectItem itemValue="1" itemLabel="1. radio one" />
<f:selectItem itemValue="2" itemLabel="2. radio two" />
</h:selectOneRadio>

它将调用TestBean中的getMySelectItem()方法。正如您所见,这与itemValue无关,因为itemValue负责设置用户提交表单时请求中的内容的值。然后,itemValue将存储在h:selectOneRadio的值中,希望您已绑定到如下字符串字段:

 <h:selectOneRadio value="">
    <f:selectItem itemValue="TestValue" itemLabel="TestLabel" value="#{TestBean.mySelect}"/>
</h:selectOneRadio>   
<h:selectOneRadio value="#{TestBean.selectedRadioValue}">
<f:selectItem itemValue="1" itemLabel="1. radio one" />
<f:selectItem itemValue="2" itemLabel="2. radio two" />
</h:selectOneRadio>


现在,如果用户检查收音机,在他看来是:“1.radio one”,值“1”将存储在TestBean的变量selectedRadioValue中,这些图像是版权所有的,未经许可不得使用。我想你在这里得到了一个更好的(原始)答案,但我已经将第一句读了4遍,但仍然很难理解它。澄清?我同意乔恩(关于“更好”的答案)+1我现在添加了更多信息=)希望这能澄清问题