没有值的输出......

没有值的输出......

package com.imooc.el;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet("/info")
public class StudentServlet extends HttpServlet {
    public StudentServlet() {
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        Student stu = new Student();
        stu.setName("子");
        stu.setMobile(null);
        String grade = "A";
        request.setAttribute("student", stu);
        request.setAttribute("grade", grade);
        request.getRequestDispatcher("/el_info.jsp").forward(request, response);
    }
}
package com.imooc.el;

public class Student {
    private String name;
    private String mobile;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getMobile() {
        return mobile;
    }

    public void setMobile(String mobile) {
        this.mobile = mobile;
    }
}
<%--
  Created by IntelliJ IDEA.
  User: mhr04
  Date: 19.11.13
  Time: 15:34
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java"%>
<html>
<head>
    <title>Student</title>
</head>
<body>
<h1>姓名:${requestScope.student.name }</h1>
<h2>手机:${requestScope.student.mobile }</h2>
<h2>评价:${requestScope.grade }</h2>

</body>
</html>
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
    <welcome-file-list>
        <welcome-file>el_info.jsp</welcome-file>
    </welcome-file-list>
</web-app>

http://img1.sycdn.imooc.com//climg/5dcbb9ab099aba1304860318.jpghttp://img1.sycdn.imooc.com//climg/5dcbb9b809fa6c8e05920349.jpg

上一个提问是为什么带.jsp不能显示,这次确实不带.jsp不能显示。。。为什么啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

3回答
好帮手慕酷酷 2019-11-13 17:55:21

同学你好,老师的视频这里,也同样是显示为空白的,因为对于el表达式,当值为空时,是不会进行输出的哦~

同学可以回顾一下视频中的18:05秒,如:

http://img1.sycdn.imooc.com//climg/5dcbd2ad095a682117301005.jpg

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

  • 提问者 mixiaofan #1
    是我瞎了!对不起老师!我错了!
    2019-11-13 17:56:04
好帮手慕酷酷 2019-11-13 17:46:41

同学你好,这里并不是info.jsp,而是/info路径。Servlet的映射路径为info,并不需要后缀jsp了哦~

如:

http://img1.sycdn.imooc.com//climg/5dcbd09e091fb7d304170125.jpg

如:

http://img1.sycdn.imooc.com//climg/5dcbd08a0922fe0805010224.jpg

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

  • 提问者 mixiaofan #1
    这个知道了,谢谢老师。 最后有一个问题没解决,映射到el_info.jsp时,如果我setMobile设置的是(null),最后页面只是显示手机,但手机后面是空白,没有显示。但如果是(“null”)就成功显示null,换成其他字符也都可以。但是就是不能像老师的那样(null)也被可以输出
    2019-11-13 17:49:26
好帮手慕酷酷 2019-11-13 17:27:26

同学你好,可能同学没有明白整个案例的执行过程,这个案例中需要首先要通过访问Servlet的映射路径进行给Student对象设置值,然后通过页面转发跳转,将数据传递给el_info.jsp,最后jsp中通过el表达式进行展示数据。

所以直接访问jsp是无法获取到值的,而在第二张图片中出现404,则代表路径访问错误,这里需要先访问Servlet的映射路径,也就是如下:

http://img1.sycdn.imooc.com//climg/5dcbcc1c0972a3a405400124.jpg

综上所述,路径应该是:

http://localhost:8080/el/info

而如果先访问jsp,则代表先从jsp中传递数据给servlet。比如将页面的表单输入的值进行传递给某个servlet。

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

  • 提问者 mixiaofan #1
    是我之前搞混了,改了映射路径的名称,区分了下。 但是输出没有值: 当我映射到el_info.jsp时有姓名,手机,但是后面没有输出的值 当我映射到info.jsp时报错500 报错内容和这个提问第三张图一样 http://class.imooc.com/course/qadetail/169409
    2019-11-13 17:40:05
  • 提问者 mixiaofan #2
    这个解决了。我加注释的时候把stu也不小心注释掉了。 最后有一个问题没解决,映射到el_info.jsp时,如果我setMobile设置的是(null),最后页面只是显示手机,但手机后面是空白,没有显示。但如果是(“null”)就成功显示null,换成其他字符也都可以。但是就是不能像老师的那样(null)也被可以输出
    2019-11-13 17:46:05
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师