首页 > 解决方案 > 通过将值传递给jsp而不使用javascript自动填充来自servlet的值

问题描述

我正在尝试在不单击提交按钮的情况下提交表单。我想在没有javascript的情况下做到这一点。有什么办法可以实现吗?我想使用 scriplets 从 servlet 获取 jsp 中的数据,但我该如何实现呢?

姓名:汤姆

姓名:杰瑞

索引.jsp

 <form action="NewServlet" method="post">

  <input type="text" name="firstname"/>// while entering Tom here Jerry 
should appear automatically in below text box

  <input type="text" name="lastname"/>//I am trying to display Jerry while 
user enters Tom on above text box

 </form>

新Servlet.java

  String firstname=request.getParameter("firstname");
  if(firstname.equals("Tom"){
   String lastname="jerry";// return this value "Jerry to index. jsp
   request.setAttribute("lastname", lastname); 
  }

标签: javajspservlets

解决方案


您可以尝试以下方法:

//scriplet to retrieve the value of the last name
<%
String lastname = null;
if(request.getAttribute("lastname")!=null)
 {
  lastname = (String)request.getAttribute("lastname");
 }else
 {
  lastname = "some_default_value";
 }
%>
<form action="NewServlet" method="post">

<input type="text" name="firstname"/>
//set value of the input tag to the lastname variable using scriplet
<input type="text" name="lastname" value = <%=lastname%>>

</form>

您的 servlet 文件将是:

 String firstname=request.getParameter("firstname");
 if(firstname.equals("Tom")
{
 String lastname="jerry";// return this value "Jerry to index. jsp
 RequestDispatcher dispatcher = request.getRequestDispatcher("index.jsp");
 request.setAttribute("lastname", lastname); 
 dispatcher.forward(request, response);
 }

至于在不点击提交按钮的情况下提交,您可以在表单中有一个提交类型的隐藏按钮。然而,这种方法很乏味,并且对脚本有不必要的调用,而且就用户体验而言,这是一种不好的做法。在工作中,似乎网页正在重新加载只是为了从 servlet 获得自动建议。

此外,这仅在用户填写名字然后单击 Enter 时才有效。此外,您必须添加另一个极端情况来检查是否使用姓氏重定向回 index.jsp 或接受用户提供的姓氏(如果他们有的话)。因此,我建议您使用 jquery 检查自动完成


推荐阅读