当前位置: 首页 > 知识库问答 >
问题:

我的jsp打印“null”而不是null

邹祺
2023-03-14

我从数据库中读取一个字符串值,并通过servlet将其打印到jsp页面上。问题是,在Jsp上,如果数据库中的字段为空,就会打印出字符串“null”。如果数据库中的值为空,我需要一个空白的编辑框。

我的数据库访问对象:

 public String getVerEmpId(retailcustomervergobean rcvb) {
        String var = "";
        custid = rcvb.getCustid();
        Connection conn;
        try {
            conn = db.getDbConnection();
            String sql = "select CUST_EMP_ID from retail_cif_master where cust_id = ?";
            PreparedStatement ps = conn.prepareStatement(sql);
            ps.setString(1, custid.toUpperCase());
            ResultSet rs = ps.executeQuery();
            while (rs.next()) {
                var = rs.getString("CUST_EMP_ID");
            }
        } catch (Exception asd) {
            System.out.println(asd.getMessage());
        }
        return var;
    }

我的Servlet:

String custempid = rcvd.getVerEmpId(rcvb);
request.setAttribute("custempid", custempid);

我的Jsp:

name="custEmpId" readonly="true" value="<%=request.getAttribute("custempid")%>"

我的数据库是Oracle 11g,浏览器是FireFox。

共有3个答案

咸昀
2023-03-14

你可以这样做

String x=request.getAttribute("custempid");
if(x.equals("null"))
x=""

name="custEmpId" readonly="true" value="<%=x%>"

注意,使用jstl/el而不是scriplets

敖子安
2023-03-14

你可以试着这样做:

<%=request.getAttribute("custempid") == null ? "" : request.getAttribute("custempid") %>
贡可人
2023-03-14

您应该避免在JSP中使用scriplet。改用JSTL和EL。

在打印值之前,需要测试nullstring。当您尝试打印一个null对象引用时,null引用将转换为 string。

以下是使用 EL 预测试空值的方式:

<c:out value="${not empty custempid ? custempid: ''}" />

请注意,不为空的将检查null和空字符串。

另见:

  • 如何避免JSP文件中的爪哇代码?
  • 如何避免在我的 JSP 页面中使用脚本?
 类似资料:
  • 问题内容: 该代码似乎在运行,除了我得到的不是指定的(由用户)大小的矩阵,而是我认为的是堆地址这是当用户输入2作为大小然后输入4个数字时返回的内容: 输入矩阵大小:2逐行输入2 x 2矩阵:2 3 4 5行排序矩阵是… [[D @ 3c954549BUILD SUCCESSFUL(总时间:8秒) 这是代码…。谢谢您。 问题答案: Java数组不会覆盖,因此您将从中获取默认实现。相反,您可以使用li

  • 我有这个代码: 此打印: 如何打印?用偏移量代替Z。

  • 并且(您刚才看到的是演示的一部分,下面是类的部分内容) 我真的不知道为什么它不打印字符串的东西:(所有的类(稍后将删除) }

  • 问题内容: 如果我在某个类中有一个很少使用的集合,该集合可能被实例化很多次,则有时我可能会求助于以下“习惯用法”以节省不必要的对象创建: 现在,我想知道是否无法使用来消除这些空检查,但是我将不得不像这样更改if检查: 除了每次都分配一个新的空集合以外,还有更好的方法来处理此问题吗? 编辑: 为了清楚起见,我 想 使用Collections.emptyList(),但是在add()中进行上述检查确实

  • 我目前面临的一个问题是,我有一个的问题答案,而我正试图将每个答案打印到一个JLabel,因为这将显示添加到题库中的问题。 问题是它只会打印一个答案,并且可能有5个答案存储在数组中。它正在将它打印到控制台我尝试将放在for循环内部和外部。 我这样做是最好的方法吗?

  • 问题内容: 我必须编写一个例程,如果变量的类型为,则将变量的值加1,否则将变量的值分配为0,其中变量的初始值为或。 第一个实现是因为我认为没有数字会使算术表达式为假,但是由于计算为真,所以这是错误的。然后,我得知行为类似于0,并且以下表达式均被评估为true。 当然不是0。被评估为false。这使看似重言式的表达成为错误。 为什么实际上不是0,却像0? 问题答案: 您真正的问题似乎是: 为什么: