繁体   English   中英

如何避免在jsp中检查null

[英]How to avoid checking for null in jsp

我想使用JSP页面返回动态xml。我面临的问题是我已经建模了一些值为null的值,当它们为null时我不会显示它们。 因此,我可以执行以下操作:

if(ampApInfo.getColourcd().equals(null)){   %>

    <ColourCd><%=  ampApInfo.getColourcd() %></ColourCd>

  <%} else if(ampApInfo.getSzWeightColourcd().equals(null)){ %> 


    <SzWeightColourcd><%= ampApInfo.getSzWeightColourcd()  %></SzWeightColourcd>

  <%}%> //and so forth

但这使我的代码很难看并且不切实际。 有办法避免这种情况吗? 能否请您提供一个示例,或提供给我一个示例。 非常感谢。

丑陋是由使用老式的scriptlet而不是JSTL / EL引起的 使用JSTL,它看起来会更加自我记录(因为它使用类似XML的标记)。 使用EL,您可以使用${}表示法访问bean属性。

像这样:

<c:choose>
    <c:when test="${not empty ampApInfo.colourcd}">
        <ColourCd>${ampApInfo.colourcd}</ColourCd>
    </c:when>
    <c:when test="${not empty ampApInfo.szWeightColourcd}">
        <ColourCd>${ampApInfo.szWeightColourcd}</ColourCd>
    </c:when>
    <c:otherwise />
</c:choose>

(请注意,我倒的条件下,您在打印的元素,如果值 null ,这违背自己的功能需求)

也可以看看:

if(object1!=null){

do something

}else{

do something else

}

可能重复避免!= null语句

尝试三元运算符。 另外,我认为您没有错过代码,所以如果您的代码是,

     if(ampApInfo.getColourcd() != null){   %>

    <ColourCd><%=  ampApInfo.getColourcd() %></ColourCd>

  <%} else if(ampApInfo.getSzWeightColourcd() != null){ %> 

    <SzWeightColourcd><%= ampApInfo.getSzWeightColourcd()  %></SzWeightColourcd>

  <%}%> //and so forth

然后,您将转变为这样。

<%
    String str1 = "tag1 data";
    String str2 = "tag2 data";
    String finalStr = str1 != null ? "<tag1>" + str1 + "</tag1>" : (str2 != null ? "<tag2>" + str2 + "</tag2>" : "");
%>
  <%= finalStr%>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM