【问题标题】:Get all values of HTML form获取 HTML 表单的所有值
【发布时间】:2014-10-22 08:22:01
【问题描述】:

我的页面调用一个 servlet,它返回 HTML 表单的文本(字符串)并使用 <h:outputText value="#{controller.htmlForm}" escape="false" /> 呈现它,我想从该表单获取所有值到控制器。我怎样才能做到这一点?

servlet 将返回类似这样的内容

<html>
   <head>
       <title>Page Title</title>
   </head>
   <body>
       <form name="myForm" id="myForm" action="/app/urlServlet">
           <input type="text" name="input1" >
           <input type="text" name="input2" >
           <input type="text" name="input3" >
           <input type="text" name="input4" >
       </form>
   </body>
</html>

我的 xhtml 包含这样的 JSF 标签

<h:outputText value="#{controller.htmlForm}" escape="false" />
<p:commandButton value="#{piece['submit']}" id="btnSubmit" action="#{controller.submit()}"/>

控制器变量htmlForm 用于从servlet 中放入HTML 字符串。现在,当单击提交按钮时,我想在我的 controller.submit() 方法中从表单 myForm 中获取值。

【问题讨论】:

    标签: javascript html jsf servlets


    【解决方案1】:

    我认为这个问题不能使用 JSF 来解决,因为从 servlet 返回的 HTML 是纯 HTML 并且不绑定到任何 JSF 控制器。该解决方案可以使用 jQuery 替代方案来完成:

    1. jQuery 提交()

    使用 jQyery 的 submit() 方法将使用 GET HTTP 方法以查询字符串格式input1=value1&amp;input2=value2&amp;input3=value3&amp;input4=value4 提交表单内的所有输入值。

        $("form[name=myForm]").submit();
    

    2。 jQuery ajax 请求和 serialize() 方法

    使用 jQuery ajax 请求,我们可以选择我们想要使用的 HTTP 方法(GET / POST),我们可以使用 serialize() 方法获取表单的值。

        $.ajax({
            type : 'POST',
            url : www.url.com,
            data : $("form[name=myForm]").serialize(),
            success : function(data) {
                // Process on success
            },
            error : function(error) {
                // Process on error
            }
        });
    

    【讨论】:

      【解决方案2】:

      为您的输入字段使用&lt;h:inputText&gt;,并将其值绑定到您的 Controller.java 中的一个字段。

      <h:inputText label="input1" value="#{controller.value1}" />
      

      在您的班级中,您必须使用 getter 和 setter 定义一个字符串字段“value1”。

      Look here for information about the tags you are allowed to put in &lt;h:inputText&gt; (e.g. style, tabindex or title)

      【讨论】:

        猜你喜欢
        • 2011-04-02
        • 1970-01-01
        • 1970-01-01
        • 2011-11-16
        • 1970-01-01
        • 2023-03-06
        • 1970-01-01
        • 2014-06-02
        • 2021-03-02
        相关资源
        最近更新 更多