我有一个jsp页面,其中包含一个带有数组值的隐藏字段。
<input value="[Ljava.lang.String;@9700b4" name="val0" type="hidden">
现在在java文件中,这是servlet我想要这个数组。所以像这样的代码,
String str[] = request.getParameterValues("val0");
但是这个给了我数组,我的实际数组是该数组的第一个索引。 如何在servlet页面中获取数组值?
答案 0 :(得分:0)
"[Ljava.lang.String;@9700b4"
不是你认为的那样;它是数组上的toString()
,而不是正确的序列化。你从getParameterValues()
得到的是那个确切的字符串,"[Ljava.lang.String;@9700b4"
(可能不是你想要的)。通常,您要么在会话中存储String [],要么将其序列化为JSON,然后反序列化str[0]
。
您可以在Strings
之间使用分隔符吗?您可能希望在HTML中看到类似的内容:
<input value="array_element_0,array_element_1,..." name="val0" type="hidden">
答案 1 :(得分: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 ......
}
答案 2 :(得分:0)
试试这个:
<% for (String s : jspStrArray) {%>
<input value="<%=s%>" name="val0" type="hidden"/>
<%}%>
这将在ur jsp
中生成n个隐藏字段答案 3 :(得分:0)
您在代码中犯了一些错误,您应该在以下代码之前添加此符号$
:
<form>
<c:forEach var="somename like users" items="${user}">
<input type="hidden" name="val0" value="${[Ljava.lang.String;@9700b4}">
</c:forEach>
</form>
*某些名称意味着您在servlet页面中获取详细信息的位置,以及jsp页面中的项目用户。
以上代码将生成HTML代码,如
<input type="hidden" name="val0" value="${[Ljava.lang.String;@9700b4}">
在servlet中访问这些值,
String str[] = request.getParameterValues("va10");
for(String str[] : va10)
{
out.println("product values : "+str[]);
}
答案 4 :(得分:0)
根据Ashish,您无法直接访问它。 转换为数组
<% String s[] = request.getAttribute("first_val");
if(s.length>0){
%>
<input value="<%=s[0]%>" name="first_val" type="hidden">
<% }
else{
// As per your code
}
希望工作顺利