0

I have String Array Value in request object and I retrieved it like the following,

<%
                                        if (request.getAttribute("categoriesList") != null) {%>
                                        <input id="categoriesList" name="categoriesList" type="hidden" value="<%= (String[]) request.getAttribute("categoriesList") %>"/>
                                            <c:forEach var="categoryName" items="${categoriesList}">
                                                <li><a onclick="getCategoryIndex()" href="#">${categoryName}</a></li>
                                            </c:forEach>
                                        <% }%>

this prints the value to <li> but I also have hidden variable and I want to assign the value to it,

<input id="categoriesList" name="categoriesList" type="hidden" value="<%= (String[]) request.getAttribute("categoriesList") %>"/>

but when I printed them using java script like the following,

var category= new Array();
        category = $('#categoriesList').val();
        console.log(category);


        for (var i in category) {
            console.log(category[i]);
            }

I get ,

[Ljava.lang.String;@f2bc8d rechargeWalletRequest.htm:182
[ rechargeWalletRequest.htm:186
L rechargeWalletRequest.htm:186
j rechargeWalletRequest.htm:186
a rechargeWalletRequest.htm:186
v rechargeWalletRequest.htm:186
a rechargeWalletRequest.htm:186
. rechargeWalletRequest.htm:186
l rechargeWalletRequest.htm:186
a rechargeWalletRequest.htm:186
n rechargeWalletRequest.htm:186
g rechargeWalletRequest.htm:186
. rechargeWalletRequest.htm:186
S rechargeWalletRequest.htm:186
t rechargeWalletRequest.htm:186
r rechargeWalletRequest.htm:186
i rechargeWalletRequest.htm:186
n rechargeWalletRequest.htm:186
g rechargeWalletRequest.htm:186
; rechargeWalletRequest.htm:186
@ rechargeWalletRequest.htm:186
f rechargeWalletRequest.htm:186
2 rechargeWalletRequest.htm:186
b rechargeWalletRequest.htm:186
c rechargeWalletRequest.htm:186
8 rechargeWalletRequest.htm:186
d rechargeWalletRequest.htm:186

I am supposed to get the value but it prints some thing else.

Please help to get this done.

2 Answers 2

1

You will have to assign a unique id to each of the input-hidden statements. Something like this:

<%
    if (request.getAttribute("categoriesList") != null) {%>
        <c:forEach var="categoryName" items="${categoriesList}">
            <input id="${categoryName}" name="categoriesList" type="hidden" value="${categoryName}"/>
            <li><a onclick="getCategoryIndex()" href="#">${categoryName}</a></li>
        </c:forEach>
<% }%>

Then fetch all the elements with the name property in jQuery and iterate over them to fetch values.

Sign up to request clarification or add additional context in comments.

Comments

1

Tried recreating your scenario.. what actually gets into the hidden field is the hashcode (use the browser's developer tools to see it). try returning a List instead of String[] and then it will work fine.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.