2014-10-22 109 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 
     } 
    });