【问题标题】:JSF and HTML input fieldsJSF 和 HTML 输入字段
【发布时间】:2013-08-14 19:09:08
【问题描述】:

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

基本上,我必须在输入字段上使用 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 的值。

我有办法做到这一点吗?

【问题讨论】:

  • @mrembisz 不是我想要的,但我确实找到了解决方案,并将其作为该答案的问题发布:)
  • 您的问题冗长而令人困惑,但我想您的问题最终归结为:“我怎样才能让&lt;h:inputText&gt; 呈现data-provide="typeahead" 属性?” 这是真的吗?
  • @BalusC 我只是想解释为什么我会这样做。我已经问过这个问题并确认 typeahead 要么不适用于 JSF,要么该解决方案不值得花时间去寻找。我想我可以通过获取&lt;input&gt; 值,以某种方式将其放入&lt;inputText&gt; 并在bean 中获取该值来解决它。这被证明是笨拙和混乱的,所以我找到了另一种方法。

标签: html jsf twitter-bootstrap typeahead


【解决方案1】:

我解决了这个问题,但在输入字段上设置了 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");

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

【讨论】:

  • 看来你严重混淆了一些概念。 &lt;h:inputText&gt; 根本不支持 name 属性。它默认也不支持placeholder 属性(有一些方法可以让JSF 组件传递额外的属性)。您更有可能实际上使用纯 HTML &lt;input type="text"&gt; 而不是 JSF &lt;h:inputText&gt;
  • 好吧,我只是在屏幕大部分完成后才加入该项目。我以前从未与 JSF 合作过。 inputText 标签已经存在,并且 placeholder 属性正在工作。我要编辑我的答案 - 我发布的 HTML sn-p 是错误的(感谢您发现这一点,这会让人们感到困惑!) - 我最终使用纯 HTML,设置 ID 和名称属性,然后得到使用 HttpServletRequest 的 bean 中的值。感谢您了解
  • &lt;h:input&gt; 不是有效的 HTML。
猜你喜欢
  • 2016-10-03
  • 2016-07-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-01-22
  • 1970-01-01
  • 2011-09-10
  • 1970-01-01
相关资源
最近更新 更多