将数据从Java页面传递到JSP页面

时间:2015-01-22 06:52:06

标签: java jsp servlets

我正在尝试将一个Object类型从 Java类传递到Jsp页面。

经过许多网站后,我对如何解决这个问题感到困惑。我的Java文件包含以下内容:

    Object categoryelements;
    Iterator it=elements.iterator();
    while (it.hasNext())
    {
        JSONObject innerObj= (JSONObject)it.next();
        categoryelements= innerObj.get("category");
        System.out.println(categoryelements);
    }

我想将此 categoryelements 传递给JSP页面。

有可能这样做吗?我正在使用JSP页面,Servlet和Java页面

请为此提供解决方案吗?

3 个答案:

答案 0 :(得分:0)

您的HTTPRequest对象将具有setAttribute,getAttribute&amp; removeAttribute方法,它会在内部持有一个地图[Map<String,Object>]来保存属性,你可以设置关键字&amp;值对并使用隐式请求对象在JSP中获取它

答案 1 :(得分:-1)

如果categoryelements包含普通字符串,则设置这样的请求属性

request.setAttribute("categoryelements", categoryelements.toString());

并在JSP中获取值,例如div,例如

<div>${categoryelements}</div>

修改: -

要访问dropdownlist中的请求属性,您可以使用JSTL库,这有助于处理JSPHTML中的执行流程。您可以在此JSP页面中添加此库,

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>

然后使用它们按如下方式迭代列表,

<select name="selectFieldName">
    // following line of code works as Java for loop and here 'listRequestAttribute' can be any list type object e.g. List<String>
    <c:forEach items="${listRequestAttribute}" var="currentListItem">
        // '${currentListItem}' will hold the current object in the loop iteration.
        <option value="${currentListItem}" >
            ${currentListItem}
        </option>
    </c:forEach>
</select>

答案 2 :(得分:-1)

Java中的

Object categoryelements;
List<String> result = new ArrayList<String>();
Iterator it=elements.iterator();
while (it.hasNext())
{
    JSONObject innerObj= (JSONObject)it.next();
    result.add(innerObj.get("category"));
}
request.setAttribute("result", result);
JSP中的

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<jsp:useBean id="result" class="java.lang.List" scope="request" />
...

<c:forEach var="item" items="${result}" >
    <c:out value="${item}"/>
</c:forEach>

这只是一个简单的例子。您可以考虑使用Object以外的类来更好地控制输出。 Gson库可能会对您有所帮助。