注意:几小时后,我也在Javaranch中发布了这个问题。其链接为http://www.coderanch.com/t/629456/JSP/java/Cancel-button-behaves-differently-Chrome。 我还没有收到回复。我在这里张贴它,看看我是否可以得到一两个建议。在struts和JSP方面我也是初学者所以请告诉我是否应该提供更多详细信息。
问题是我的网页上的取消按钮在chrome和firefox浏览器中表现不同。
我当前的网址是 context path / importEmployee.do?method = load。
在我当前的页面中,我上传了一个CSV文件。这个页面有两个按钮 - 确定和取消,这些按钮是我遇到的麻烦(我会在短时间内到达那个部分)。相关的JSP部分如下。
<html:form action="importEmployee?method=save" method="POST" styleId="importEmployee" enctype="multipart/form-data"> ....... some headers and title bar and stuff... and then as follows. <div class="contentSection"> <table border="0" class="formTable"> <html:hidden property = "selectedSet" /> <tr> <td class="formLabel"><label for="file">Download File:</label> </td> <td> <span> <a class="buttonStyle" rel="nofollow">Download Sample CSV</a> </span> </td> <tr> <td class="spacerCell"> </td> </tr> <tr> <td class="formLabel"><label for="file">CSV File:</label></td> <td><html:file property="importFile" styleId="importFile" size="60" maxlength="120" /></td> </tr> <tr> <td class="spacerCell"> </td> </tr> </table> </div> <table border="0" class="footerBar"> <tr> <td id="footerLeft"> <html:submit value=" OK " title=" OK " styleClass="button"> </html:submit> <span> <a class="buttonStyle" href="<%=request.getContextPath()%>/employees.do?method=load"> Cancel </a> </span> </td> <td id="footerRight" class="pagination"> </td> </tr> </table>
上传CSV文件并单击确定后,将调用相应的操作类方法,并且我的网址将更改为 - context path / importEmployee.do?method = save
此页面基本上包含导入统计信息,未处理记录的错误消息等。 此页面还有一个确定和取消按钮。 相应的JSP部分如下。
<html:form action="importEmployee?method=save" method="POST" styleId="importEmployee" enctype="multipart/form-data"> <table border="0" > <tr> <td id="leftEdge"><img src="<%= request.getContextPath()%>/images/new/edge_left.gif" width="30"
height =“321”alt =“”/&gt;
..... some processing and then... <table border="0" class="footerBar"> <tr> <td id="footerLeft"> <span> <a class="buttonStyle" href="<%=request.getContextPath()%>/employees.do?method=load"> OK </a> </span> <input name="cancel" id="cancel" type="submit" class="button" value="Cancel" onclick="goBack(); return false;" /> </td> <td id="footerRight" class="pagination"> </td> </tr> </table>
所以,如果我点击第二页中的cancel(context path / importEmployee.do?method = save),我会回到第一个URL页面,即 context path / importEmployee.do?method = load。 但是这部分在Firefox和Chrome浏览器中表现不同。 在Chrome中,如果我在第二页中单击“取消”,我仍然可以在第一页中看到上传的文件名(第一个JSP中的隐藏属性是文件名)。如果我点击确定,我可以再次进行处理,就像在第一页上第一次点击确定一样。 但是,当我在Firefox浏览器中运行我的应用程序时,如果我在第二页中单击“取消”,则上传的文件名在第一页中显示“未选择文件”。因此,要再次导入Employees,我需要再次上传新的/相同的CSV文件。
即使我在Chrome中运行我的应用程序,当我在第二页中单击“取消”时,我也不希望该文件出现在第一页中。是的,我要求文件名是隐藏属性。这是因为根据文件中的数据,会进行不同类型的处理,其中一些需要在另一页上从用户那里获取额外的输入,第三页需要进行处理。因此,文件名应该传递给表单,但我不希望用户再次上传文件。
但是,如果用户点击取消,我不希望文件名保留在第一页中。但这不会发生。
所以我有两个问题。为什么Chrome和Firefox中的行为有所不同,有没有办法可以纠正它在Chrome中的行为方式?
答案 0 :(得分:0)
这已经解决了。
工作人员表示,此取消按钮行为是一种已知行为。在chrome中单击取消后再次查看文件名是可以的。我们不应该在Mozilla中看到它。
对于我的疑问感到困惑和感谢。