2013-05-17 27 views
1

我使用下面的JSP文件中的代碼,但我看到的隱藏字段的值是沒有得到在此頁面的源代碼提交JSP:隱藏字段沒有得到提交

<form action="/processor/RequestActivityByCsv" method="post" enctype="multipart/form-data"> 
<div class="inputDiv"> 
    <h5>comma delimited file: <input type="file" name="file"/></h5> 
    <input name="csrfToken" type="hidden" value="<%=CryptoUtils.generateCsrfToken()%>" /> 
    <input type="submit" value="upload" class="btn btn-primary"/> 
</div> 
</form> 

當屬:

<form action="/processor/RequestActivityByCsv" method="post" enctype="multipart/form-data"> 
     <div class="inputDiv"> 
     <h5>comma delimited file: <input type="file" name="file"/></h5> 
     <input name="csrfToken" type="hidden" value="t5ipRVFNIP83IUh5NCf7PiTp4mM2kBFVdHjqwlGx7PI=" /> 
     <input type="submit" value="upload" class="btn btn-primary"/> 
     </div> 
</form> 

任何明顯的我mignt在這裏失蹤?

+0

你的參數代碼是什麼? – Jason

+0

在java中執行req.getParameter()給出null – vishesh

+0

我想問題是'enctype =「multipart/form-data」'因爲只有文件正在提交,沒有其他字段被提交。 – vishesh

回答

2

你可以使用

String value = request.getParameter("fieldname").toString(); 

在你的情況下,隱藏字段,以及所有其他字段值獲取隱藏的價值領域吶

String csrfToken= request.getParameter("csrfToken").toString(); 

更新用2

index.jsp

<%@page contentType="text/html" pageEncoding="UTF-8"%> 
<!DOCTYPE html> 
<html> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
     <title>JSP Page</title> 
    </head> 
    <body> 
     <form action="test.jsp" method="get"> 
     <input type="hidden" name="csrfToken" id="csrfToken" value="t5ipRVFNIP83IUh5NCf7PiTp4mM2kBFVdHjqwlGx7PI=" /> 
     <input type="submit" value="sumbit"/> 
     </form> 
    </body> 
</html> 

test.jsp的

<%@page contentType="text/html" pageEncoding="UTF-8"%> 
<!DOCTYPE html> 
<html> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
     <title>JSP Page</title> 
    </head> 
    <body> 
     <% 
     String csrfToken= (String)request.getParameter("csrfToken"); 
     out.print(csrfToken); 
     %> 
    </body> 
</html> 

輸出

t5ipRVFNIP83IUh5NCf7PiTp4mM2kBFVdHjqwlGx7PI =

+0

這隻會給一個NullPointerException,因爲req.getParameter(「csrfToken」)給出了空值 – vishesh

+1

看到我的更新........希望我會幫助你 –

0

是的,我以前遇到這個問題。

試試這個: -

<form name="frmfileupload" action="/processor/RequestActivityByCsv" method="post" enctype="multipart/form-data"> 
<div class="inputDiv"> 
    <h5>comma delimited file: <input type="file" name="file"/></h5> 
    <input name="csrfToken" type="hidden" value="<%=CryptoUtils.generateCsrfToken()%>" /> 
    <input type="button" value="upload" onclick="funSubmit()" class="btn btn-primary"/> 
</div> 
</form> 

使用Java腳本的提交形式: -

<script > 
function funSubmit(){ 

    //You can do javascript validation here 
    var val=document.frmfileupload.csrToken.value; 
    document.frmfileupload.action="<%=request.getContextPath()%>/processor/RequestActivityByCsv?csrToken="+val; 
    document.frmfileupload.submit(); 

} 

</script> 

在上面的Java腳本,我用URL發送令牌值。

希望它能幫助你。