如何在jsp中将数组打印到输入字段?

时间:2014-12-11 16:41:37

标签: java javascript arrays jsp

整数数组fibSequence使用重定向传递到jsp页面result,该重定向的检索方式如下:<%String[] fibSequence = request.getParameterValues("fibSequence");%>。 但是当我将输入字段的值设置为fibSequence数组时,我得到了数组的内存地址,而不是存储在数组中的整数值:

[Ljava.lang.String;@678f482d

mem address

这是数组输出到文本框的方式:

<input type="text" name="fibNum" value="<%=fibSequence%>" size="40px" style="font-size:30pt;height:60px">

我也从下面的答案中尝试过这样但输出仍然相同:

<input type="text" name="fibNum" value="<%=java.util.Arrays.deepToString(fibSequence)%>" size="40px" style="font-size:30pt;height:60px">

有谁知道如何将数组的内容输出到jsp中的文本框?

我尝试使用Arrays.toString方法打印出值,但是我收到错误Arrays无法解析:

<%=Arrays.toString(fibSequence)%>

2 个答案:

答案 0 :(得分:1)

您将获得默认Object.toString(),因为数组(和数组是对象)不会覆盖toString()。您可以使用Arrays.toString(Object[])之类的

value="<%=java.util.Arrays.toString(fibSequence)%>"

或者将java.util.Arrays的导入添加到JSP。

答案 1 :(得分:1)

这个例子是有用的:
的web.xml

<web-app>
  <display-name>Archetype Created Web Application</display-name>
    <filter>
        <filter-name>filter</filter-name>
        <filter-class>ru.bmstu.FirstFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>filter</filter-name>
        <url-pattern>*</url-pattern>
    </filter-mapping>
</web-app>

FirsFilter.java

...
    void doFilter(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws IOException, ServletException {
        System.out.println("doFilter from FirstFilter");
        String[] cba = {"1", "2", "3", "5"};
        request.setAttribute("cba", cba);
        filterChain.doFilter(request, response);
    }
...

的index.jsp

<%@ page import="java.util.Arrays" %>
<html>
<body>
<h3>This is the JBoss example!</h3>
<% String[] abc = {"1", "2", "3"};%>
<%=Arrays.toString(abc)%>
<% String[] cba = (String[]) request.getAttribute("cba"); %>
<%=Arrays.toString(cba)%>
</body>
</html>

结果是:

This is the JBoss example!
[1, 2, 3] [1, 2, 3, 5]