我正在尝试将一个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页面
请为此提供解决方案吗?
答案 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
库,这有助于处理JSP
或HTML
中的执行流程。您可以在此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)
:
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
库可能会对您有所帮助。