加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 资源网站 > 资源 > 正文

表单 – 使用GET提交JSF表单

发布时间:2020-12-14 18:44:17 所属栏目:资源 来源:网络整理
导读:如何将表单提交到同一页面并使用GET参数? JSF页面内容: f:metadata f:viewParam name="item1" value="#{bean.item1}"/ f:viewParam name="item2" value="#{bean.item2}"//f:metadata...h:form h:inputText value="#{bean.item1}"/ h:inputText value="#{be
如何将表单提交到同一页面并使用GET参数?

JSF页面内容:

<f:metadata>
    <f:viewParam name="item1" value="#{bean.item1}"/>
    <f:viewParam name="item2" value="#{bean.item2}"/>
</f:metadata>

...

<h:form>
  <h:inputText value="#{bean.item1}"/>
  <h:inputText value="#{bean.item2}"/>

  <h:button value="Submit" >
      <f:param name="item1" value="#{bean.item1}"/>
      <f:param name="item2" value="#{bean.item2}"/>
  </h:button>
</h:form>

如果我请求页面:form.jsf?item1 = foo& item2 = bar,它将填充文本字段,但表单提交到自身似乎不起作用.

解决方法

替换< h:button>通过
<h:commandButton value="Submit" action="form?faces-redirect=true&amp;includeViewParams=true"/>

它有效地触发PRG(Post-Redirect-Get),其中包括< f:viewParam>查询字符串中的参数.注意到目标页面必须具有完全相同的< f:viewParam>.

另一种解决方案是使用纯HTML< form>而不是< h:form>,为输入元素提供与参数名称匹配的id,并使用plain< input type =“submit”>.您当然也可以使用纯HTML< input type =“text”>这里.

<form>
    <h:inputText id="item1" value="#{bean.item1}"/>
    <h:inputText id="item2" value="#{bean.item2}"/>

    <input type="submit" value="Submit" />
</form>

您仍应保留< f:viewParam>在双方.您只需要意识到转换/验证无法以这种形式完成,它们必须通过< f:viewParam>执行.在目标页面上.

也可以看看:

> What can <f:metadata>,<f:viewParam> and <f:viewAction> be used for?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读