2014-02-19 4 views
2

У меня есть страница jsp, которая содержит скрытое поле со значением массива.Как получить значение массива из скрытого поля в Servlet?

<input value="[Ljava.lang.String;@9700b4" name="val0" type="hidden"> 

Теперь в файле java, который является сервлетом, я хочу этот массив. Итак, код, подобный этому,

String str[] = request.getParameterValues("val0"); 

Но это дает мне массив, и мой фактический массив находится в первом индексе этого массива. Как я могу получить значения массива на моей странице сервлета?

+0

эй дружище, вы хотите детали в Jsp или Jsp сервлета ... – jmail

ответ

0

По Ashish вы не можете получить доступ к нему. Cast в массиве

<% String s[] = request.getAttribute("first_val"); 
if(s.length>0){ 
%> 
<input value="<%=s[0]%>" name="first_val" type="hidden"> 
<% } 
else{ 
// As per your code 
} 

Надежда работает хорошо

0

"[Ljava.lang.String;@9700b4" - это не то, что вы думаете об этом; это toString() на массиве, а не на правильную сериализацию. То, что вы получаете от getParameterValues(), составляет , что точно String, "[Ljava.lang.String;@9700b4" (возможно, не то, что вы хотите). Обычно вы либо сохраняете эту строку [] в сеансе, либо сериализуете ее, скажем, JSON, а затем десериализуете str[0].

Есть ли разделитель между этими Strings? Вы, вероятно, хотите, чтобы увидеть что-то подобное в вашем HTML:

<input value="array_element_0,array_element_1,..." name="val0" type="hidden"> 
0

Вы не можете непосредственно сделать так, Вы должны касте это первый в массив, как:

<% String str[] = request.getAttribute("val0"); // casting your String[] Object 
// check if array contains value 
if(str.length>0){ 
%> 
<input value="<%=str[0]%>" name="val0" type="hidden"> 
<% } else{ 
// else part ...... 
} 
0

попробовать это:

<% for (String s : jspStrArray) {%> 
    <input value="<%=s%>" name="val0" type="hidden"/> 
<%}%> 

это будет генерировать п скрытые поля в Уре JSP

+0

я был предположить, что и хочу, чтобы все значения в Уре сервлета из JSP – Arvind

+0

спасибо. Ваш код также работает. – user3048011

0

ваш делать какую-то ошибку в коде, вы должны необходимо добавить этот знак $ до того значения, как следующий код:

<form> 
<c:forEach var="somename like users" items="${user}"> 
<input type="hidden" name="val0" value="${[Ljava.lang.String;@9700b4}"> 
</c:forEach> 
</form> 

* некоторое имя значит, где вы получите детали как пользователи сервлета страницы и так же, как пользователь пунктов в JSP-странице.

Приведенный выше код генерирует HTML-код, как

<input type="hidden" name="val0" value="${[Ljava.lang.String;@9700b4}"> 

доступа эти значения в сервлет,

String str[] = request.getParameterValues("va10"); 
for(String str[] : va10) 
{ 
    out.println("product values : "+str[]); 
} 
Смежные вопросы