我的页面调用一个返回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 表单中的值。
答案 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”。