gpt4 book ai didi

jsf - 从 Facelets 调用 servlet 的正确方法?

转载 作者:行者123 更新时间:2023-12-04 17:18:22 25 4
gpt4 key购买 nike

使用带有提交按钮的表单从 facelets 文件调用 servlet 的正确方法是什么?是否需要特定的表格?

最佳答案

只需使用纯 HTML <form>而不是 JSF <h:form> . JSF <h:form>默认情况下向当前 View 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 组件开销了。

例如,当您想要向映射到 URL 模式 /foo/* 的 servlet 发送 POST 请求时并且您需要发送名称为 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");
// ...
}

关于jsf - 从 Facelets 调用 servlet 的正确方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10175963/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com