foreach循环不显示jsp中的任何输出

时间:2014-10-30 12:13:18

标签: java jsp foreach

我在jsp中运行了第一个foreach循环。我不知道问题是什么。它也没有显示任何错误。

这是我的java代码:

package pack1;
    import java.util.ArrayList;

    public class jstlClass

    {
        String emp_name;
        String emp_id;
        String emp_dept;


        public String getEmp_name()

        {
            return emp_name;
        }
        public void setEmp_name(String emp_name)

        {
            this.emp_name = emp_name;
        }
        public String getEmp_id()
        {
            return emp_id;
        }

        public void setEmp_id(String emp_id)
        {
            this.emp_id = emp_id;
        }

        public String getEmp_dept() 
        {
            return emp_dept;
        }

        public void setEmp_dept(String emp_dept) 
        {
            this.emp_dept = emp_dept;
        }

        public static void main(String[] gs)
        {
            ArrayList li=new ArrayList();

            jstlClass emp=new jstlClass();
            emp.setEmp_id("20");
            emp.setEmp_name("vishnu");
            emp.setEmp_dept("it");
            li.add(emp);

            jstlClass j=new jstlClass();
            j.setEmp_id("21");
            j.setEmp_name("prem");
            j.setEmp_dept("csc");
            li.add(j);

        }   
    }

这是我的jsp代码:

<html>
</head>
<body>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<jsp:useBean id="emp1" class="pack1.jstlClass" scope="session"/>
<%@ page import="java.util.*" %>

<% 
<c:forEach var="li" items="${sessionScope.li}">

<c:out value="${li.emp_id}"/>
<c:out value="${li.emp_name}"/>
<c:out value="${li.emp_dept}"/>

</c:forEach>

%>

</body>
</html>

我已经尝试了这么久但仍显示相同的输出。我正在使用Eclipse和Apache Tomcat服务器。我甚至试过在谷歌Chrome服务器上运行它,但没有变化。我把那个&#34; Hello world&#34;在那里,它显示,但不进入foreach循环。 这是我的第一个foreach循环程序,我完全不知道出了什么问题。 求救!

2 个答案:

答案 0 :(得分:2)

这一点都不对......你这样做了...... 在执行此操作之前,您必须阅读servlet jsp ...

为你的项目创建一个servlet并将数据从servlet传递给jsp,然后只有jsp可以从那里访问数据

首先尝试使用servlet jsp示例.. 示例servlet

public class Login extends HttpServlet {
    private static final long serialVersionUID = 1L;

    public Login() {
        super();
    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
                      //right your code here to get data from jstlClass and pass it to the jsp in request
      request.setAttribute("","");
            request.getRequestDispatcher("/FirstJSP.jsp").forward(request, response);                
        } 

protected void doget(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        }       
        }
    }
}

然后你可以访问那里的参数

试试这个例子    http://www.java-samples.com/showtutorial.php?tutorialid=552

答案 1 :(得分:0)

您必须在JSP中设置类的属性。

原因是主要方法未在j2ee中调用:

试试这个

<jsp:useBean id="emp1" class="pack1.jstlClass" scope="session"/>
 <jsp:setProperty name="emp1" property="emp_id" value="20"/> 
 <jsp:setProperty name="emp1" property="emp_name" value="vishnu"/> 
 <jsp:setProperty name="emp1" property="emp_dept" value="it"/> 

使用标记访问:

  <jsp:getProperty name="emp1" property="emp_name"/>