2013-05-17 1 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> 

ничего очевидного Я не могу здесь пропустить?

+0

что вы получаете код параметра? – Jason

+0

Выполнение req.getParameter() в java дает null – vishesh

+0

Я думаю, проблема связана с 'enctype =" multipart/form-data "' как только файл отправляется, никакое другое поле не получает submit.any идеи? – vishesh

ответ

2

Вы можете получить скрытое поле, а также все другие значения полей с помощью

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

В вашем случае для получения скрытого значения для поля па

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

Updation 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> 

В вышеприведенном Яваскрипт я посылаю значение маркера с помощью URL.

Надеюсь, это поможет вам.

Смежные вопросы