我的index.jsp如下:
<form action="FileUploadServlet" id="formSubmit" method="post" enctype="multipart/form-data">
<input type="text" id="txtFileName" value="${fname}"/>
<input type="file" name="fileName" id="selectedFile" style="display: none;">
<input type="button" id="btnBrowse" value="Browse..." onclick="document.getElementById('selectedFile').click();" />
<input type="submit" value="Upload" id="btnUpload">
</form>
当形式为summited 时,带有value=${fname}
的来自servlet中的dopost方法
request.setAttribute("fname", fileName);
getServletContext().getRequestDispatcher("/index.jsp").forward(
request, response);
但是当我部署index.jsp
时,这很奇怪
我的文本字段始终在文本区域中显示${fname}
,即使提交表单后,仍然会获得该值(正确地显示'filename')
有没有人像我一样遇到这个问题?
答案 0 :(得分:0)
在JSP中,检索值的正确语法是
<%=request.getAttribute("fname")%>
这称为赋值OR表达式标记(<%=%>
)。
试试这个......
<form action="FileUploadServlet" id="formSubmit" method="post" enctype="multipart/form-data">
<input type="text" id="txtFileName" value="<%=request.getAttribute("fname")%>"/>
<input type="file" name="fileName" id="selectedFile" style="display: none;">
<input type="button" id="btnBrowse" value="Browse..." onclick="document.getElementById('selectedFile').click();" />
<input type="submit" value="Upload" id="btnUpload">
</form>
与此更相关,here。
答案 1 :(得分:0)
首先,您使用错误的语法在JSP中显示值。 下面的语法是错误的。
value="${fname}"
我们使用表达式标记来显示JSP页面中的值。表达式标记转换为Java语句。
<%=request.getAttribute("fname")%>
当您第一次打开index.jsp页面时,它会显示空白值,当请求从服务器端返回时,它会显示正确的结果。 使用以下代码。
<%if(request.getAttribute("fname")!=null){%>
<input type="text" value ="<%=request.getAttribute("fname") %>"/>
<%}else
{ %>
<input type="text"/>
<%} %>