获取一个请求的隐藏输入值,其中键是相似的

时间:2012-05-25 13:38:42

标签: jsf request hidden

JSF:

<h:form>
    <h:inputHidden id="promo" value="promo-motopair"/>
    <h:commandButton value="#{m.buy}" action="#{showProducts.buy}"/>
</h:form>


<h:form>
    <h:inputHidden id="promo" value="promo-northduck"/>
    <h:commandButton value="#{m.buy}" action="#{showProducts.buy}"/>
</h:form>

Bean,点击了id:

String promo = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("promo");

无法获取,因为id等于promo,但前缀为前缀,看起来像j_idt40:promo

如何处理这种情况?

我需要key获取项目。我想,那个密钥(id中的inputhidden)应该是单一的。我应该只依赖promo值。

1 个答案:

答案 0 :(得分:3)

请勿使用<h:inputHidden>。它不适合您的特定功能要求。只需使用标准HTML <input type="hidden">

<h:form>
    <input type="hidden" name="promo" value="promo-motopair"/>
    <h:commandButton value="#{m.buy}" action="#{showProducts.buy}"/>
</h:form>

<h:form>
    <input type="hidden" name="promo" value="promo-northduck"/>
    <h:commandButton value="#{m.buy}" action="#{showProducts.buy}"/>
</h:form>

它也是一个请求范围的bean,只有

可用
@ManagedProperty("#{param.promo}")
private String promo;

无需从请求参数映射中手动获取它。