【问题标题】:Exclude field from a form in JSF从 JSF 中的表单中排除字段
【发布时间】:2011-08-18 13:44:59
【问题描述】:

我有以下问题:假设下面的代码:

...
     <h:form id="..">
        <table>

        <table border="1">
         <tr>
         <td><h:outputText value="#{msg.prompt1}"/></td>
         <td><h:inputText value="#{personBean.personData1}" /> 
                  <!-- This field must not participate in the form. There would be 
                       other JSF form and tags here -->
              <h:commandButton action="other_action_with_ajax"/>
         </td> 
         </tr>
         <tr>
         <td><h:outputText value="#{msg.promp2}"/></td>
         <td><h:inputText value="#{personBean.personData2}" /></td>
         </tr>
         <tr>
         <td><h:outputText value="#{msg.msg}"/></td>
         <td><h:commandButton action="greeting" value="#{msg.button_text}" /></td>
         </tr>
        </table>
     </h:form>
...

我需要从表格(当前平面 html)中的表单中排除一个字段,因为该字段是只读的,并且处理和处理方式与其他字段不同。它将是其他形式的一部分,而不是该表的包装形式。但是这个字段必须放在这个表中才能正确格式化。我不能把表格放在表格里。将两个表格放在一个表格中而不将其分成两个表格包裹在表格中的最佳方法是什么?

【问题讨论】:

  • 我不明白这个问题。您想要一个在提交时不处理的输入字段吗?在这种情况下,只需使用普通的 html 输入字段而不是 jsf 输入字段。在流程输入阶段会被忽略。

标签: java html jsf


【解决方案1】:

只需使用输入组件的readonlydisabled 属性即可。

例如

<h:inputText value="#{bean.value}" disabled="#{!bean.editable}" />

设置readonly="true" 将使其不可编辑,但可提交。设置disabled="true" 将使其不可编辑不可提交(即值未提交到服务器)。

【讨论】:

  • 不客气。由于您在这里相对较新,因此请不要忘记在回答(大多数)有助于解决问题时将其标记为已接受。另见meta.stackexchange.com/questions/5234/…
  • 但是让我们假设另一种情况。在这个表格里面,我必须把有自己的表格的作品放在那里。如果我需要把它和表格一起放进桌子怎么办。将此评论作为一个单独的问题是一个好主意吗?
  • HTML 中不能嵌套表单,JSF 中也不能嵌套。
  • 是否有可能在一个表格中拆分表格?
  • 一个&lt;form&gt; 只能在&lt;td&gt; 内。顺便说一句,如果您使用带有&lt;f:ajax&gt; 的JSF2,很高兴知道您可以使用execute 属性指定执行上下文。因此,您可以使用execute="input1 input3" 代替execute="@form",以此类推,您可以跳过input2
猜你喜欢
  • 2020-02-24
  • 1970-01-01
  • 1970-01-01
  • 2021-06-16
  • 1970-01-01
  • 2023-03-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多