【问题标题】:Not displaying object values in jsp在jsp中不显示对象值
【发布时间】:2018-03-22 20:04:59
【问题描述】:

我通过我的 jdbc 有一个对象类,当客户登录时,我想在其中显示所有订单。

我的数据库中有一个类可以访问所有订单:

public static ArrayList<OrderSample> showOrders() throws ClassNotFoundException, SQLException, LoginSampleException {
    try {
        ArrayList<OrderSample> order = new ArrayList();

        Connection con = Connector.connection();
        String SQL = "SELECT * from useradmin.users";
        Statement statement = con.createStatement();
        ResultSet rs = statement.executeQuery(SQL);
        while(rs.next()){

        int id = rs.getInt("idorder");
        int height = rs.getInt("height");
        int length = rs.getInt("length");
        int width = rs.getInt("width");

        OrderSample o = new OrderSample(height, length, width);
        order.add(o);
        }
        return order;
  } catch (ClassNotFoundException | SQLException ex) {
        throw new LoginSampleException(ex.getMessage());
    }
}
}

然后我有一个 servlet 方法将信息放入会话对象,从命令超类处理所有请求:

公共类员工扩展命令{

@Override
String execute(HttpServletRequest request, HttpServletResponse response) throws LoginSampleException {
    try {
        ArrayList<OrderSample> orders =UserMapper.showOrders();
        request.setAttribute("orders", orders);

    } catch (ClassNotFoundException ex) {
        Logger.getLogger(Employee.class.getName()).log(Level.SEVERE, null, ex);
    } catch (SQLException ex) {
        Logger.getLogger(Employee.class.getName()).log(Level.SEVERE, null, ex);
    }

    return "employee";
}

当我尝试循环遍历订单对象以在我的 jsp 中显示它们时,它们不显示

 <c: forEach items="${order}" var="order">
     <tr>
         <td>Order to delete </td>

    </tr>
</c:forEach>

【问题讨论】:

  • 代码将单个order 作为“订单”放在请求范围(不是会话范围)中,但order 不是集合。也许使用整个orders 而不是单个order
  • +1 关于 Andrews S 所说的内容,此外,还有一些有问题的代码块也在发生。在您的 showOrders() 方法中,有一个 try 语句没有 catch 语句。在您的 jsp 中,&lt;c: foreach&gt; 的名称中有一个空格。不确定是否重要,但我不会在那里有那个空间。在您的 servlet 代码中,您最终只在请求中设置了一个 OrderSample,而不是 OrderSamples 中的 List。意思是,当你到达 jsp 时不会有集合,&lt;c:foreach&gt; 无论如何也没有任何东西可以迭代。
  • 所以我必须在 var 中写命令?
  • 我已经适当地更改了代码,但它仍然无法正常工作..

标签: java jsp servlets jdbc


【解决方案1】:

您在HttpServletRequest 中设置您的响应对象。您必须适当地设置响应内容类型,然后在响应正文中设置内容本身。

【讨论】:

  • 如何设置响应内容类型?
  • setContentType 对象上有一个 setContentType 方法。检查HttpServletResponse的API:docs.oracle.com/javaee/6/api/javax/servlet/http/…
  • 所以我只是将订单作为字符串插入到内容类型中。谢谢你的帮助顺便说一句
  • 不,内容类型将是 textjson。实际内容将进入正文。
  • 我没有使用json,所以对于POJO对象作为我的订单,它会是文本?
猜你喜欢
  • 1970-01-01
  • 2020-11-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-19
  • 1970-01-01
  • 1970-01-01
  • 2013-04-03
相关资源
最近更新 更多