向表单添加隐藏数据时出错

时间:2014-04-10 12:07:01

标签: java javascript servlets

我的 form1 看起来像这样,

<form method="post" id="myform" name="myform" action="upload" enctype="multipart/form-data">
    <div id="elements">  
    <ul id="ul">
        <li>Left File&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : <input type="file" name="dataFile1" id="fileChooser1" /></li><li><br></li>
        <li>Right File&nbsp;&nbsp;&nbsp;&nbsp; : <input type="file" name="dataFile2" id="fileChooser2" /></li><li><br></li>
        <li>Runner.xlsx : <input type="file" name="dataFile3" id="fileChooser3" /></li><li><br></li>
        <li><button type="button" id="execute" onclick="ValidateFile()">Click to Upload files</button></li>
    </ul>
    </div>
</form>

我已经宣布了这样的功能向表单中添加隐藏数据

function addHidden(theForm, key, value) {
var input = document.createElement('input');
input.type = 'hidden';
input.name = key;
input.value = value;
theForm.appendChild(input);
}
验证文件()

中的

var myDivText1 = ace.edit("editor").getValue();
var theForm = document.forms['myform'];
addHidden(theForm, 'mytxt1', myDivText1);
alert(myDivText1);
document.myform.submit();   

在我的 upload.java servlet中,

if (itemField.equals("dataFile1")) 
 {  //get the text of the editor here and save it

  String TEXT = request.getAttribute("mytxt1").toString();//this is being displayed as null
  System.out.println(TEXT);
  File uploadedFile = new File(fpath, fileName);
  item.write(uploadedFile);
  String f1 = "<span class='blue'>" + "Uploaded <b>left file</b> " +fileName+ "<br>" + "</span>";
  request.setAttribute("f1stat", f1);
}

当我的Javascript函数中的警报显示正确的值时,当我尝试在 upload.java servlet中访问它时,它显示一个空值。

我已将此功能用于另一种形式,也就是它在传递所需数据时失败了,我的错误是什么?

我尝试将getAttribute更改为getParameter仍然获得空值。

3 个答案:

答案 0 :(得分:2)

我认为您应该使用request.getParameter("mytxt1")代替request.getAttribute("mytxt1")

答案 1 :(得分:0)

String TEXT = request.getAttribute("mytxt1").toString();   

显示为null,因为您没有设置任何名为“mytxt1”的属性。

你应该使用

request.getParameter("mytxt1"); 

因为你试图从一个带有一些名称变量的表单中获取某些内容。

答案 2 :(得分:0)

因为您的enctype是&#34; multipart / form-data&#34;,您无法通过使用request.getParameter(&#34; mytxt1&#34;)获得任何内容,您可以尝试使用apache fileupload组件