jsp错误中的输入值文本字段

时间:2015-07-08 14:32:50

标签: java jsp

我的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')

有没有人像我一样遇到这个问题?

2 个答案:

答案 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"/>
    <%} %>