获取HTML表单的所有值

时间:2014-10-22 08:22:01

标签: javascript html jsf servlets

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

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 表单中的值。

2 个答案:

答案 0 :(得分:0)

我认为使用JSF无法解决这个问题,因为从servlet返回的HTML是纯HTML,并不依赖于任何JSF控制器。解决方案可以使用jQuery替代方案完成:

<强> 1。 jQuery submit()

使用jQyery的submit()方法将使用GET HTTP方法以查询字符串格式input1=value1&input2=value2&input3=value3&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
        }
    });

答案 1 :(得分:-1)

<h:inputText>用于输入字段,并将其值绑定到Controller.java中的字段。

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

在你的课堂上,你必须用getter和setter定义一个String字段“value1”。

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