我正在使用jsp servlet一个简单的表单,它有两个提交按钮。 首先提交将从表单中取几个字段并获取结果,第二个将最终提交整个表单。我的问题是我在提交后丢失所有表单字段,我想保留它。 我是怎么做的: 第一个请求来到servlet后我正在调用
request.getRequestDispatcher("myJsp.jsp").forward(request,response);
如何在不使用ajax的情况下检索已经填充的表单字段。
这是我的jsp文件
<FORM id="form" METHOD="POST" ACTION="action">
<TABLE class="baseFrame">
<TR>
<TD>UserName</TD>
<TD><INPUT TYPE="text" NAME="txtUser" SIZE="25" ></TD>
</TR>
<TR>
<TD>Password</TD>
<TD><INPUT TYPE="password" NAME="txtPass" SIZE="25" ></TD>
</TR>
<TR>
<TD>Docbase</TD>
<TD><INPUT TYPE="text" NAME="txtDocbase" SIZE="25" ></TD>
</TR>
<TR>
<TD><INPUT TYPE="Submit" Value="GetObjects" NAME="getObject" /></TD>
</TR>
<TR>
<TD>R_Object_ID's</TD>
<TD><textarea rows= "10" cols = "30" name="idList" id="" >
<c:forEach items='${rObjIds}' var='varObj'>
<c:out value="${varObj}"/>
</c:forEach>
</textarea>
</TD>
</TR>
<TR>
<TD></TD>
<TD><INPUT TYPE="Submit" Value="Syndicate Bulk" NAME="Run_DFS" /></TD>
</TR>
</form>
在我的servlet中我正在使用
protected void doPost( HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException
{
logger.info("Coming to do post method");
if(request.getParameter("getObject") != null){
ArrayList<String> objIds = new ArrayList<String>();
objIds = getObjectIds();
request.setAttribute("rObjIds", objIds);
this.getServletContext().getRequestDispatcher("/bulk_syndication_utility.jsp").forward(request,response);
}
else if(request.getParameter("Run_DFS") != null){
logger.info("going to syndicate object ids");
doJob();
}
request.getRequestDispatcher("bulk_syndication_utility.jsp").forward(request,response);
}
要在第一次点击后保留值,我使用了value =“$ {fn:escapeXml(param.txtUser)}但我认为我无法使用它重新获得密码所以也没有修复它。