0
이것은 bean 클래스의 my function입니다. product.java 데이터베이스에서 특정 세부 사항을 선택하고 데이터베이스의 값을 해시 맵에 저장합니다. HashMap은 클래스 제품 유형입니다. 리턴 된 hashmap을 반복 처리하고 jsp를 사용하여 모든 값을 얻는 방법
public HashMap<String,Products> showProducts()
{
HttpServletRequest request = null;
PreparedStatement preparedStatement;
HashMap<String,Products>productMap=new HashMap<String,Products>();
try
{
preparedStatement = con.prepareStatement("select * from productdetails where producttype='toy'");
ResultSet resultSet=preparedStatement.executeQuery();
Products toy=new Products();
while(resultSet.next()){
toy.setProductId(resultSet.getInt(1));
toy.setProductName(resultSet.getString(2));
toy.setProductPrice(resultSet.getInt(3));
productMap.put("toy",toy);
request.setAttribute("productSessionMap",productMap);
}
}
catch(Exception e)
{
e.printStackTrace();
}
return productMap;
}
이
내가 반복하고 스크립틀릿 태그를 사용하여이 나타나지 않음 JSP에서 해시 맵의 각 값과 키를 표시 할 JSP 페이지 <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@page import="java.util.Set"%>
<%@page import="java.util.HashMap"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
Welcome!!!! <c:out value="${sessionScope.loginBean.userName}"></c:out>
<jsp:useBean id="loginBean" class="com.training.entity.ShoppingCart"
scope="session"></jsp:useBean>
<jsp:setProperty property="*" name="loginBean"/>
<c:set var="status" value="${loginBean.showProducts()}"></c:set>
<c:set var="keys" value="${status.keySet()}"></c:set>
<c:out value="${status.toString()}"></c:out> <!-- This line displays last value of hashmap-!>
<c:forEach var="type" items="${productSessionMap}">
<c:out value="${type[keys]}"></c:out>
</c:forEach>
</body>
</html>
입니다. 이걸 도와주세요.
심지어 내가 scriplet 태그를 사용하여 시도 ... 그러나 반복 할 때 난 단지 반복의 모든 항목의 Map.Entry의 istance입니다<%
ShoppingCart ob=new ShoppingCart();
HashMap<Integer,Products>newproductMap=new HashMap<Integer,Products>();
newproductMap=ob.showProducts();
Set<Integer>set = newproductMap.keySet();
for(Integer ent:set){
String name=newproductMap.get(ent).getProductName().toString();%>
<%=name%>
<%-- <%String value = ent.getValue().toString();%>
<%=value%>
--%>
<%}%>
그러나 scriplet 태그를 사용하지 않고 JSP에서이 작업을 수행 할 수있는 방법이 호출에 액세스 할 수 있습니다. –
해시 맵에 중복 키를 사용했습니다. 그걸 찾아 주셔서 고마워요. foreach는 VAR = "제품"항목 = "$ <: foreach는 VAR ="제품 "항목 ="$ {productSessionMap} "C> \t productId에이 $ {product.key}
이 같은 시도 product.value {} "> \t \t \t \t <% \t \t 제품 p = (제품) pageContext.getAttribute ("P "); \t \t퍼센트> \t \t productPrice 인 <% = p.productPrice %> \t \t 제품명 인 <% = p.productName %> "P"는 context.getAttribute이 무엇 –