如何将HTML中的选择标记填充到JSF 2中?

时间:2011-11-03 11:13:34

标签: jsf jsf-2

我有这个code可以在HTML中正常工作,但是如何在我的bean中插入<select />标记的值?

这样的事情:

<h:outputLabel for="state" value="State:" />
<h:selectOneMenu id="state" value="#{bean.state}" />

到目前为止,我正在尝试很多事情。 有什么想法吗?

4 个答案:

答案 0 :(得分:2)

这不起作用。 JSF需要知道所有下拉项。

要么使用纯HTML <select>元素而不是<h:selectOneMenu>,请抓取@ManagedProperty<f:viewParam>提交的值或者将JS代码转换为JSF支持bean代码的端口,以便您可以使用<f:selectItems>。您可以使用<f:ajax>填充并呈现第二个下拉列表。

答案 1 :(得分:1)

Javascript函数似乎占用id的{​​{1}}个。

如果您执行select<h:form prependId="false">,那么“city”将是JSF呈现的<h:selectOneMenu id="city"的{​​{1}}。只需将id传递给函数。

select

答案 2 :(得分:0)

您需要使用<h:selectItems>标记。一个很好的介绍是herehere

答案 3 :(得分:0)

当我将CKEditor集成到JSF中时,我有一个愚蠢的(或有趣的)想法(看看,这很棒)。

因此,CKEditor不完全支持JSF,但它本身支持HTML和JS(jQuery)。在CKEditor中进行编辑时,它会创建其他标记供用户输入,当用户向服务器提交信息时,其中没有任何内容。所以我创建了一个<h:inputTextArea value="#{bean.textEditor}"/>,当用户提交时,它运行一个脚本将其值设置为<h:inputTextArea/>:)

回到你的问题 ,我会触发一个JS脚本来做这个技巧:)。你可以使用<h:inputHidden value=#{bean.city}/>onclick事件在提交按钮或类似的东西做那个技巧:)。但在这种情况下,您必须自己验证数据以确保此信息是有效的。