0

我有一个情况,我还没有找到任何问题。

基本上,我必须在输入字段上使用 twitter-bootstrap typeahead。

但是,这个输入字段是一个 JSF inputText 字段,如下所示:

<h:inputText id="arrivalAirport" value="#{searchFlightsBean.arrivalAirport}" styleClass="input-block-level blue-highlight" placeholder="Enter arrival city">
</h:inputText>

不幸的是,twitter-bootstrap typeahead 不适用于 JSF inputText 字段 - 至少,我无法让它工作(如果有办法做到这一点,请在评论中告诉我!)。

我必须在 JSF 表单中使用普通的输入字段,如下所示:

<input data-provide="typeahead" value="#{searchFlightsBean.departureAirport}" class="input-override input-block-level blue-highlight airportSearch" placeholder="Enter departure city">
</input>

我用预先输入的代码完美地完成了这个工作。

一个问题:bean 没有得到正常输入字段的值——这就是我们首先使用 JSF 的原因。

我需要为 typeahead JS 使用普通输入字段,并且我需要使用 JSF inputText 字段来获取 bean 的值。

我有办法做到这一点吗?

4

1 回答 1

2

我解决了这个问题,但在输入字段上设置 ID 和名称属性,如下所示:

<input id="arrivalAirport" name="arrivalAirport" value="#{searchFlightsBean.arrivalAirport}" class="input-block-level blue-highlight" placeholder="Enter arrival city">
</input>

之后,我在 bean 中要做的就是以下内容:

HttpServletRequest req = (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest();
String arrivaleAirport = req.getParameter("arrivalAirport");

上面的代码对我来说非常有效,但我不确定如果有多个按钮它会起作用。

于 2013-08-13T09:49:55.467 回答