使用带有提交按钮的表单从 Facelets 文件调用 servlet 的正确方法是什么?是否需要特定表格?
只需使用纯 HTML<form>
而不是 JSF<h:form>
。 JSF<h:form>
默认情况下,向当前视图 ID 的 URL 发送 POST 请求,并默认调用FacesServlet
。它不允许您更改表单操作 URL 或方法。纯 HTML<form>
允许您指定不同的 URL,如有必要,还可以指定方法。
以下启动示例向 Google 发送搜索请求:
<form action="http://google.com/search">
<input type="text" name="q" />
<input type="submit" />
</form>
请注意,您也不需要对输入/按钮使用 JSF 组件。可以使用<h:inputText>
等等,但这些值不会在关联的支持 bean 中设置。这样 JSF 组件开销就不再需要了。
例如,当您想要将 POST 请求发送到映射到 URL 模式的 servlet 时/foo/*
并且您需要发送一个带有名称的请求参数bar
,那么您需要创建如下表单:
<form action="#{request.contextPath}/foo" method="post">
<input type="text" name="bar" />
<input type="submit" />
</form>
这样servlet的doPost()
方法将被调用:
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String bar = request.getParameter("bar");
// ...
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)