2014-10-22 107 views
0

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

该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包含这样

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

控制器变量HtmlForm控件用来把HTML字符串从servlet的JSF标签。现在点击Submit按钮时,我想从我的controller.submit()方法中获取myForm的值。

回答

0

我认为这个问题不能使用JSF作为HTML从servlet返回的是一个普通的HTML和不依赖于任何JSF控制器来解决。该解决方案可以使用jQuery替代来完成:

1. jQuery的提交()

使用提交()jQyery的方法的形式使用内GET HTTP方法在提交查询字符​​串格式input1=value1&input2=value2&input3=value3&input4=value4所有输入值。

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

2. jQuery的ajax请求和序列化()方法

使用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 
     } 
    });