PInkDuck
2021-10-17 15:30
采纳率: 100%
浏览 18
已结题

javaweb相同代码,结果不同,一个正常显示数据,一个为空

javaweb

相同的代码,在同学的电脑上是可以显示的,但是在我的电脑和舍友的就不行,我用的是idea2021 我舍友是idea2017

img

虽是初学,还是想着看能不能自己搞定,因为不太会用idea ,但是还是找到了一点问题,个人认为应该是book这几个变量无法解析导致数据显示不出,但是要加什么代码琢磨半天也没通过,请同学们指点!
以下是图片描述和代码

img

这是showDataServlet

package wjj.com.servlet;

import wjj.com.pojo.pojo.OrderItem;
import wjj.com.pojo.pojo.Product;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;

public class ShowDataSerlver extends HttpServlet{
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        HashMap<String,Object> book=new HashMap<String, Object>();
        book.put("isbn","123456");
        book.put("price",23.56);
        book.put("press","珠江出版社");

        HashMap<String,String> address = new HashMap<String, String>();
        address.put("province","广东省");
        address.put("city","广州市");
        address.put("dinst","从化区");

        book.put("addr",address);

        //req.setAttribute("book",book);

        req.getSession().setAttribute("book",book);

        ArrayList<wjj.com.pojo.pojo.OrderItem> orderItems=new ArrayList<wjj.com.pojo.pojo.OrderItem>();
        OrderItem orderItem;
        Product product;
        for(int i = 0; i < 4; i++){
            orderItem=new OrderItem();
            orderItem.setId(3000+i);
            orderItem.setNum(10+i);

            product=new Product();
            product.setImgUrl("xh"+i+".png");
            product.setName("鲜花");
            product.setPrice(10*i);
            orderItem.setProduct(product);
            orderItems.add(orderItem);

            req.getSession().setAttribute("orderItems",orderItems);

        }


        req.getRequestDispatcher("showData.jsp").forward(req,resp);
    }
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        this.doGet(req, resp);
    }
}




这是showData.jsp

<%@ page import="java.util.HashMap" %><%--
  Created by IntelliJ IDEA.
  User: wujiajie
  Date: 2021/9/10
  Time: 13:45
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%
    String name="吴";
    int jf=124;
    boolean sex = true;
    HashMap<String,String> da=new HashMap<String,String>();
    da.put("id","123123131");
%>
<html>
<head>
    <title>数据的封装及显示</title>
</head>
<body>
<h4>页面产生数据,用JSP脚本进行显示</h4>
姓名:<%=name%><br>
积分:<%=jf%><br>
性别:<%=sex%><br>
编号:<%=da.get("id")%><br>
<hr>

<h4>servlet产生并封装数据,用request对象进行数据传输,在页面用EL进行显示</h4>
ISBN:${book.isbn}<br>
价格:${book.price}<br>
出版社:${book.press}<br>
送货地址:${book.addr.province}${book.addr.city}${book.addr.dinst}<br>
<hr>

<h4>servlet产生并封装数据,用session对象进行数据传输,在页面用JSTL进行显示</h4>
ISBN:${book.isbn}<br>
价格:${book.price}<br>
出版社:${book.press}<br>
送货地址:${book.addr.province}${book.addr.city}${book.addr.dinst}<br>
<hr>

<h4>servlet产生并封装数据,用session对象进行数据传输,在页面用JSTL进行显示</h4>
ISBN:<c:out value="${book.isbn}" default="no data"/> <br>
价格:<c:out value="${book.price}" default="no data"/><br>
出版社:<c:out value="${book.press}" default="no data"/><br>
送货地址:<c:out value="${book.addr.province}" default="no data"/><br>
<hr>

<h4>servlet产生并封装数据,用session对象进行数据传输,在页面用JSTL进行显示</h4>
<c:forEach items="${orderItems}" var="orderItem">
    <c:out value="${orderItem.id}"/>&nbsp;&nbsp;&nbsp;
    <c:out value="${orderItem.product.imgUrl}"/>&nbsp;&nbsp;&nbsp;
    <c:out value="${orderItem.product.name}"/>&nbsp;&nbsp;&nbsp;
    <c:out value="${orderItem.product.price}"/>&nbsp;&nbsp;&nbsp;
    <c:choose>
        <c:when test="${orderItem.num>11}">
            <c:out value="缺货"/>
        </c:when>
        <c:otherwise>
            <c:out value="畅销"/>
        </c:otherwise>
    </c:choose>
    <c:out value="${orderItem.num}"/><br>



</c:forEach>
<hr>



</body>
</html>



并非抄袭homework,请各位同学放心回答!

  • 好问题 提建议
  • 收藏

2条回答 默认 最新

  • PInkDuck 2021-10-17 19:45
    已采纳

    没人回答呀,唉。吃完饭回来,自己又琢磨了一下
    1.修改web.xml文件

    
     <web-app version="2.5"
    xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
    http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" >
    

    2.增加了这么一句代码

    <%@page isELIgnored="false" %>
    
    

    还是不行,继续尝试吧

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • PInkDuck 2021-10-17 20:47

    搞定了!

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题